On Sun, 30 Dec 2007 15:27:56 -0800 (PST), Wim wrote: > This is what I would like to do (simplified): I have 2 images (dome.png, > telescope.png) which are 100x100px, transparant and are meant to be painted > on top of each other, each rotated under a certain angle. These 2 angles > can vary with time, and I would like the painting on the screen to be > updated with these new angles, say at a frequency of once per second. > > My solution (simplified):
[...] > def paintEvent(self, ev): > p = QPainter() > p.begin(self.buffer) > p.translate(50,50) > > p.save() > p.rotate(self.telescopeAngle) > p.drawImage(QRect(-205,-205,410,410),self.telescopeimage) > p.restore() > > p.save() > p.rotate(self.domeAngle) > p.drawImage(QRect(-205,-205,410,410),self.domeimage) > p.restore() > > p.flush() > p.end() > bitBlt(self, 0, 0, self.buffer) > > It works, but the problem is that it flickers! The current displayed > painting is "removed" at the first drawImage, and it takes until the bitBlt > before it is painted again! It's been a while since I looked at this kind of problem. Have you tried experimenting with the updateEnabled property? http://doc.trolltech.com/3.3/qwidget.html#updatesEnabled-prop You could also try setting the WNoAutoErase flag on the widget: http://doc.trolltech.com/3.3/qt.html#WidgetFlags-enum The (C++) Qt 3 book contains an example of using bitBlt() to avoid flicker, and there's an old Qt Quarterly article that might be relevant to you - if you're comfortable with C++, though it should be readable even if you're not: http://doc.trolltech.com/qq/qq06-flicker-free.html David _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt