[PyQt] Fade effect a widget on top of another widget
Jason H
scorp1us at yahoo.com
Tue Aug 18 16:47:42 BST 2009
The fader widget is limited. What you really want to do is create a parent QWidget or QStackedWidget subclass and have it call render() on both widgets, then fade with one on top of the other with the one being faded to on the bottom (by decreasding the opacity of the top) until it is complete them move it to the current stack item.
That is for a cross fade. You could always fade to empty then fade out.
----- Original Message ----
From: Nicola Murino <lists at svrinformatica.it>
To: pyqt at riverbankcomputing.com
Sent: Tuesday, August 18, 2009 11:25:31 AM
Subject: [PyQt] Fade effect a widget on top of another widget
Hi all,
I'm trying to make a fade effect as explained here:
http://doc.trolltech.com/qq/qq16-fader.html
http://labs.trolltech.com/blogs/2007/08/21/fade-effects-a-blast-from-the-past/
I have a main windows and I change the centralwidget on some user action so I do somenthing like:
self.setCentralWidget(newwidget)
I would like to have a fade effect on widget change so I tryed to do a FaderWidget and call something like:
self.setCentralWidget(FaderWidget(newwidget))
this is my not working attempt for FaderWidget:
class widgetFader(QWidget):
def __init__(self,faded,parent=None):
super(widgetFader,self).__init__(parent)
faded.setupUi(faded)
self.timeline=QTimeLine(3000,self)
self.connect(self.timeline, SIGNAL("frameChanged(int)"), SLOT("update()"))
self.timeline.setFrameRange(0,100)
self.timeline.setCurveShape(QTimeLine.EaseInOutCurve)
if faded:
self.startBrush=faded.palette().window()
else:
self.startBrush=Qt.white
def startAnimation(self):
self.timeline.start()
def paintEvent(self,event):
painter=QPainter(self)
frame=self.timeline.currentFrame()
#print frame/100.0
painter.setOpacity(frame/100.0)
painter.fillRect(self.rect(),self.startBrush)
if frame>=100:
self.close()
what's wrong? waht is the right way to have a fader widget?
thanks
Nicola
_______________________________________________
PyQt mailing list PyQt at riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
More information about the PyQt
mailing list