On Monday 03 September 2007, Jeff Donner wrote:
> Hi,
>> I just wanted to save someone else some time - in Qt's C++ gradient
> demo, they set a QPainter directly with one of their gradients (as the
> docs show as permitted), but that doesn't seem to work in PyQt:
>> g = QtGui.QRadialGradient(midpoint.x, midpoint.y,
> self.blob_radius)
>> opaque = QtGui.QColor(value, 0.0, 0.0, 1.0)
> transparent = QtGui.QColor(value, 0.0, 0.0, 0.0)
>> g.setColorAt(0.0, opaque)
> g.setColorAt(1.0, transparent)
>> g.setSpread(QtGui.QGradient.PadSpread)
>> # b = QtGui.QBrush(g)
>> painter.setBrush(g)
>>> Produces the error:
>> painter.setBrush(g)
> TypeError: argument 1 of QPainter.setBrush() has an invalid type
>>> instead, do an extra step of making a brush with the gradient
>> b = QtGui.QBrush(g)
>> and then set the brush.
>> painter.setBrush(b)
>> I hope this saves someone time.
This should work with PyQt v4.2 and later. If that's what you are using then
send me a simple script that demonstrates the problem.
Phil