pyqt5中动画的使用详解

  

<强>一、pyqt5中动画的继承关系图

  

 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中动画的使用详解