本文实例为大家分享了pyqt实现右下角弹出框的具体代码,供大家参考,具体内容如下
构造函数中:
1
2
3
|
self .desktop = QDesktopWidget()
self .move(( self .desktop.availableGeometry().width() - self .width()), self .desktop.availableGeometry().height()) #初始化位置到右下角
self .showAnimation()
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#弹出动画
def showAnimation( self ):
#显示弹出框动画
self .animation = QPropertyAnimation( self , "pos" )
self .animation.setDuration( 1000 )
self .animation.setStartValue(QPoint( self .x(), self .y()))
self .animation.setEndValue(QPoint(( self .desktop.availableGeometry().width() - self .width()),( self .desktop.availableGeometry().height() - self .height() + self .SHADOW_WIDTH)))
self .animation.start()
#设置弹出框1秒弹出,然后渐隐
self .remainTimer = QTimer()
self .connect( self .remainTimer,SIGNAL( "timeout()" ), self ,SLOT( "closeAnimation()" ))
self .remainTimer.start( 10000 ) #定时器10秒
#关闭动画
@pyqtSlot ()
def closeAnimation( self ):
#清除Timer和信号槽
self .remainTimer.stop()
self .disconnect( self .remainTimer,SIGNAL( "timeout()" ), self ,SLOT( "closeAnimation()" ))
self .remainTimer.deleteLater()
self .remainTimer = None
#弹出框渐隐
self .animation = QPropertyAnimation( self , "windowOpacity" )
self .animation.setDuration( 1000 )
self .animation.setStartValue( 1 )
self .animation.setEndValue( 0 )
self .animation.start()
#动画完成后清理
self .connect( self .animation,SIGNAL( "finished()" ), self ,SLOT( "clearAll()" ))
#清理及退出
@pyqtSlot ()
def clearAll( self ):
self .disconnect( self .animation,SIGNAL( "finished()" ), self ,SLOT( "clearAll()" ))
sys.exit() #退出
|
或者直接: self.connect(self.animation,SIGNAL("finished()"),self,SLOT("close()"))
效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/jylonger/article/details/45724723