<强>一、pyqt5中动画的继承关系图强>
<强>二、关于QAbstractAnimation父类的认识强>
1,主要作用
-
<李>继承此类,实现一些自定义动画李>
<李>所有动画共享的功能李>
2,功能作用
循环操作
-
<李> setLoopCount(计数):设置循环次数李>
<李> currentLoop():当前循环李>
<李> currentLoopTime():当前循环时间李>
时间操作
-
<李>持续时间():单次时长李>
<李> totalDuration():动画总时长李>
<李> currentTime():当前时长李>
动画方向
-
<李> setDirection (QAbstractAnimation.Forward/QAbstractAnimation.Backward) 李>
动画状态状态()
-
<李> QAbstractAnimation.Stopped:动画停止李>
<李> QAbstractAnimation.Paused:动画暂停李>
<李> QAbstractAnimation.Running:动画运行李>
三,QPropertyAnimation属性动画的使用
主要用于实现某个属性值从x到y的动画变化
1,定义动画的主要步骤
-
<李>创建一个动画,并设置目标,属性李>
<李>设置属性值的开始,插值,结束李>
<李>动画时长李>
<李>启动动画李>
2,构造函数使用方式
1。QPropertyAnimation(父:QObject=None)
-
<李>设置动画目标:setTargetObject(自我,QObject) 李>
<李>设置动画属性(位置,大小等):setPropertyName(自我,联盟[QByteArray、字节中bytearray]) 李>
2。QPropertyAnimation (QObject联盟QByteArray、字节中bytearray,父:QObject=None)
3,常见的属性
-
<李> 李>几何
<李> pos李>
<李> 李>大小
<李> windowOpacity李>
4,设置开始值和结束值
-
<李> setStartValue(自我,有的话)李>
<李> setEndValue(自我,有的话)李>
<李> setKeyValueAt(自我,浮动,有的话)李>
<李> setKeyValues(自我,对象)李>
5,设置动画时长
-
<李> setDuration (int制)李>
6,启动动画
-
<李> start() 李>
7,简单案例(位置的)
导入系统 从PyQt5。Qt进口* 类窗口(QWidget): def __init__(自我,* args, * * kwargs): 超级()。__init__ (* args, * * kwargs) self.setWindowTitle(“动画”) 自我。调整(500、500) 自我。移动(400、200) 自我。btn=QPushButton(自我) self.init_ui () def init_ui(自我): self.btn。调整(100、100) self.btn。移动(0,0) self.btn。setStyleSheet (“QPushButton{边界:没有;背景:粉红色;}”) # 1。定义一个动画 动画=QPropertyAnimation(自我) animation.setTargetObject (self.btn) animation.setPropertyName (b 'pos”) #使用另外一种构造函数方式创建 #动画=QPropertyAnimation(自我。btn b 'pos ',自我) # 2。设置属性值 动画。setStartValue (QPoint (0, 0)) 动画。setEndValue (QPoint (400、400) # 3。设置时长 animation.setDuration (3000) # 4。启动动画 animation.start () if __name__==癬_main__”: 应用=QApplication (sys.argv) 窗口=窗口() window.show () sys.exit (app.exec_ ())
8、使用插值的动画
导入系统 从PyQt5。Qt进口* 类窗口(QWidget): def __init__(自我,* args, * * kwargs): 超级()。__init__ (* args, * * kwargs) self.setWindowTitle('使用插值”) 自我。调整(500、500) 自我。移动(400、200) 自我。btn=QPushButton(自我) self.init_ui () def init_ui(自我): self.btn。调整(50,50) self.btn。移动(0,0) self.btn。setStyleSheet (“QPushButton{边界:没有;背景:粉红色;}”) # 1。创建动画 动画=QPropertyAnimation(自我。btn b 'pos ',自我) # 2。定义动画插值 动画。setKeyValueAt (0, QPoint (0, 0)) animation.setKeyValueAt (0.25, QPoint (450 0)) animation.setKeyValueAt (0.5, QPoint (450、450)) animation.setKeyValueAt (0.75, QPoint (0, 450)) 动画。setKeyValueAt (QPoint (0, 0)) # 3。动画时长 animation.setDuration (5000) # 4。启动动画 animation.start () if __name__==癬_main__”: 应用=QApplication (sys.argv) 窗口=窗口() window.show () sys.exit (app.exec_ ())pyqt5中动画的使用详解