2017-08-26 71 views
0

如何將QLinearGradient()添加到Qrect()。我只能添加固體顏色Qt.black等。示例代碼:向QGraphicsItem添加漸變坡度[PySide]

class ItemClass(QGraphicsItem): 
    def __init__() 
     super(ItemClass, self).__init__() 
      # 

    def boundingRect(self): 
     return QRectF(x, y, w, h) 

    def paint(self, painter, opt, w): 
     rec = self.boundingRect() 
     painter.fillRect(rec, #Here I need gradient ramp) 

回答

0

可以直接傳遞QLinearGradient,如下所示:

class ItemClass(QGraphicsItem): 
    def __init__(self, parent=None): 
     QGraphicsItem.__init__(self, parent) 

    def boundingRect(self): 
     x, y, w, h = -25, -25, 50, 50 
     return QRectF(x, y, w, h) 

    def paint(self, painter, opt, w): 
     rect = self.boundingRect() 
     lgrad = QLinearGradient(rect.topLeft(), rect.bottomLeft()) 
     lgrad.setColorAt(0.0, Qt.red); 
     lgrad.setColorAt(1.0, Qt.yellow) 
     painter.fillRect(rect, lgrad) 

enter image description here