Exemplo n.º 1
0
 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());
Exemplo n.º 2
0
 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())
Exemplo n.º 3
0
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);
Exemplo n.º 4
0
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)