On Monday 03 September 2007, Jeff Donner wrote: > > 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. > > Here - I believe I'm using the latest. I'm not using Ubuntu's old one > at least. I can't tell how, to see. Anyway, this shows it on my > system. > > #!/usr/bin/env python > > import sys > > from PyQt4 import QtCore, QtGui > > class MainWidget(QtGui.QWidget): > def __init__(self, parent = None): > QtGui.QWidget.__init__(self, parent) > self.w = 10.0 ; self.h = 10.0 > > def paintEvent(self, event): > xpos = self.w / 2.0 ; ypos = self.h / 2.0 > radius = 3.0 > painter = QtGui.QPainter(self) > > # invert it (so it's right-side-up) > factor = 1.5 > painter.setWindow(-((factor - 1.0) * self.w) / 2.0, > ((factor + 1.0) * self.h) / 2.0, > self.w * factor, -self.h * factor) > > painter.setPen(QtCore.Qt.black) > # bottom, right, top, left > painter.drawLine(0.0, 0.0, self.w, 0.0) > painter.drawLine(self.w, 0.0, self.w, self.h) > painter.drawLine(self.w, self.h, 0.0, self.h) > painter.drawLine(0.0, self.h, 0.0, 0.0) > > > g = QtGui.QRadialGradient(xpos, ypos, radius) > > opaque = QtGui.QColor(255, 0, 0, 255) > transparent = QtGui.QColor(255, 0, 0, 0) > > g.setColorAt(0.0, opaque) > g.setColorAt(1.0, transparent) > > g.setSpread(QtGui.QGradient.PadSpread) > > workaround = False > > if workaround: > print "workaround" > b = QtGui.QBrush(g) > painter.setBrush(b) > else: > print "no workaround" > painter.setBrush(g) > > r = QtCore.QRectF(xpos - radius, ypos - radius, radius * 2, radius > * 2) painter.setPen(QtCore.Qt.NoPen) > painter.drawRect(r) > > > > app = QtGui.QApplication(sys.argv) > > widget = MainWidget() > widget.resize(800, 600) > widget.show() > sys.exit(app.exec_())
Works fine for me. Phil _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
