예제 #1
0
 def update_spiral(self):
     # create a polygon providing the corner points of the spiral
     polygon = QPolygon()
     for i in xrange(self.window().width()):
         x = int(math.cos(i * 0.16) * i)
         y = int(math.sin(i * 0.16) * i)
         polygon.append(QPoint(x, y))
     return polygon
예제 #2
0
    def paintEvent(self, pe):
        if self.left_view and self.right_view and self.right_view.model():
            vr = self.left_view.visualRect(self.left_view.currentIndex())

            self.left_top = self.mapFromGlobal(
                self.left_view.viewport().mapToGlobal(vr.topRight())).y()
            self.left_bottom = self.mapFromGlobal(
                self.left_view.viewport().mapToGlobal(vr.bottomRight())).y()

            vr_top = self.right_view.visualRect(self.right_view.model().index(
                0, 0))
            vr = self.right_view.visualRect(self.right_view.model().index(
                self.right_view.model().rowCount() - 1, 0))

            self.right_top = self.mapFromGlobal(
                self.left_view.viewport().mapToGlobal(vr_top.topLeft())).y()
            self.right_bottom = self.mapFromGlobal(
                self.left_view.viewport().mapToGlobal(vr.bottomLeft())).y()

            w = self.minimumWidth() - 1

            p = QPainter(self)
            p.setBrush(QBrush(QColor(210, 255, 210)))

            pen = QPen()
            pen.setColor(Qt.transparent)
            p.setPen(pen)

            poly = QPolygon()
            poly.append(QPoint(0, self.left_top))
            poly.append(QPoint(w, self.right_top))
            poly.append(QPoint(w, self.right_bottom))
            poly.append(QPoint(0, self.left_bottom))
            p.drawConvexPolygon(poly)

            p.setRenderHint(QPainter.Antialiasing)
            pen.setColor(Qt.GlobalColor.black)
            pen.setWidth(2)
            p.setPen(pen)
            p.drawLine(0, self.left_top, w, self.right_top)
            p.drawLine(0, self.left_bottom, w, self.right_bottom)