Hi
Process pixel by pixel in python could be slow, especially for big area…
On my side I use QGradient
I don’t know which complexity your gradient are, but the QGradient provide some options that may answer your need.
Example 1 (with label as a QLabel)
outputWidth = 100
outputHeight = 100
pixmap = QPixmap(outputWidth,outputHeight)
# diagonal linear gradient, from top-left to bottom-right
gradient = QLinearGradient(QPointF(0, 0), QPointF(outputWidth, outputHeight))
gradient.setColorAt(0, Qt.black)
gradient.setColorAt(1, Qt.white)
canvas = QPainter()
canvas.begin(pixmap)
canvas.fillRect(QRect(0,0,outputWidth, outputHeight), gradient);
canvas.end()
label.setPixmap(qpixmap)
Example 2 (with label as a QLabel)
outputWidth = 100
outputHeight = 100
pixmap = QPixmap(outputWidth,outputHeight)
# linear gradient, from left to right
gradient = QLinearGradient(QPointF(0, 0), QPointF(outputWidth, 0))
gradient.setColorAt(0, Qt.black)
gradient.setColorAt(0.125, Qt.white)
gradient.setColorAt(0.25, Qt.red)
gradient.setColorAt(0.375, Qt.yellow)
gradient.setColorAt(0.5, Qt.green)
gradient.setColorAt(0.625, Qt.cyan)
gradient.setColorAt(0.75, Qt.blue)
gradient.setColorAt(0.875, Qt.magenta)
gradient.setColorAt(1, Qt.red)
canvas = QPainter()
canvas.begin(pixmap)
canvas.fillRect(QRect(0,0,outputWidth, outputHeight), gradient);
canvas.end()
label.setPixmap(qpixmap)
Grum999