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
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)