Cyberikia
Cyberikia

Reputation: 91

Add gradient ramp to QGraphicsItem

How to add QLinearGradient() to Qrect(). I can add only solid color as Qt.black etc. The example code:

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)

Upvotes: 2

Views: 440

Answers (1)

eyllanesc
eyllanesc

Reputation: 243955

You can directly pass the QLinearGradient as shown below:

class ItemClass(QGraphicsItem):
    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

Upvotes: 1

Related Questions