def preview(self,i): if self.prevCourse is not None: self.prevCourse.clear(); self.prevCourse = CourseObject(parent=self,index=i); self.prevCourse.resize(self.width(),self.height());
def preview(self, i): if self.prevCourse is not None: self.prevCourse.clear() self.prevCourse = CourseObject(parent=self, index=i) self.prevCourse.resize(self.width(), self.height())
class ScheduleView(QGraphicsView): def __init__(self, scene,mainWindow): self.mainWindow = mainWindow; QGraphicsView.__init__(self,scene); self.myScene = scene; self.resize(500,800); self.setWindowTitle('schedule'); self.prevCourse = None; self.courseList = []; self.setMouseTracking(True); def closeEvent(self,event): self.mainWindow.clear(); super(ScheduleView,self).closeEvent(event); def updateDisplay(self): # when opts change # example placeholder code print('here'); def clear(self): for c in self.courseList: c.clear(); self.courseList = []; def save(self): QPixmap.grabWidget(self).save('schedule.png'); def preview(self,i): if self.prevCourse is not None: self.prevCourse.clear(); self.prevCourse = CourseObject(parent=self,index=i); self.prevCourse.resize(self.width(),self.height()); def selectCourse(self,i): cCol = QColor.fromRgb(0,0,0,255); self.prevCourse.setFrameColor(cCol); self.courseList.append(self.prevCourse); self.prevCourse = None; def removeCourse(self,i): targList = filter(lambda c : c.index == i, self.courseList); for c in targList: c.clear(); self.courseList.remove(c); break; def setCourseColor(self,i,col): targList = filter(lambda c : c.index == i, self.courseList); for c in targList: c.setBkColor(col); def paintEvent(self,event): QGraphicsView.paintEvent(self,event); q = QPainter(self.viewport()); w = self.width(); #5 days + 1(left) for axis labels h = self.height(); # 12 hours + 1(top) for axis labels myColor = QColor.fromRgbF(0.5,0.4,0.3,0.3); myPen = QPen(myColor); q.setPen(myPen); for i in range(0,6): for j in range(0,13): q.drawRect(i*w/6,j*h/13,w/6,h/13); if i == 0 and j != 0: q.drawText(i*w/6,j*h/13,w/6,h/13,Qt.AlignTop|Qt.AlignHCenter,str(8+j)+":00"); elif j == 0: days = ['','Monday','Tuesday','Wednesday','Thursday','Friday']; q.drawText(i*w/6,j*h/13,w/6,h/13,Qt.AlignVCenter|Qt.AlignHCenter,days[i]); def resizeEvent(self,event): w = self.width(); h = self.height(); if self.prevCourse is not None: self.prevCourse.resize(w,h); for c in self.courseList: c.resize(w,h); QGraphicsView.resizeEvent(self,event);
class ScheduleView(QGraphicsView): def __init__(self, scene, mainWindow): self.mainWindow = mainWindow QGraphicsView.__init__(self, scene) self.myScene = scene self.resize(500, 800) self.setWindowTitle('schedule') self.prevCourse = None self.courseList = [] self.setMouseTracking(True) def closeEvent(self, event): self.mainWindow.clear() super(ScheduleView, self).closeEvent(event) def updateDisplay(self): # when opts change # example placeholder code print('here') def clear(self): for c in self.courseList: c.clear() self.courseList = [] def save(self): QPixmap.grabWidget(self).save('schedule.png') def preview(self, i): if self.prevCourse is not None: self.prevCourse.clear() self.prevCourse = CourseObject(parent=self, index=i) self.prevCourse.resize(self.width(), self.height()) def selectCourse(self, i): cCol = QColor.fromRgb(0, 0, 0, 255) self.prevCourse.setFrameColor(cCol) self.courseList.append(self.prevCourse) self.prevCourse = None def removeCourse(self, i): targList = filter(lambda c: c.index == i, self.courseList) for c in targList: c.clear() self.courseList.remove(c) break def setCourseColor(self, i, col): targList = filter(lambda c: c.index == i, self.courseList) for c in targList: c.setBkColor(col) def paintEvent(self, event): QGraphicsView.paintEvent(self, event) q = QPainter(self.viewport()) w = self.width() #5 days + 1(left) for axis labels h = self.height() # 12 hours + 1(top) for axis labels myColor = QColor.fromRgbF(0.5, 0.4, 0.3, 0.3) myPen = QPen(myColor) q.setPen(myPen) for i in range(0, 6): for j in range(0, 13): q.drawRect(i * w / 6, j * h / 13, w / 6, h / 13) if i == 0 and j != 0: q.drawText(i * w / 6, j * h / 13, w / 6, h / 13, Qt.AlignTop | Qt.AlignHCenter, str(8 + j) + ":00") elif j == 0: days = [ '', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday' ] q.drawText(i * w / 6, j * h / 13, w / 6, h / 13, Qt.AlignVCenter | Qt.AlignHCenter, days[i]) def resizeEvent(self, event): w = self.width() h = self.height() if self.prevCourse is not None: self.prevCourse.resize(w, h) for c in self.courseList: c.resize(w, h) QGraphicsView.resizeEvent(self, event)