zoukankan      html  css  js  c++  java
  • pyqt5-动画组QAnimationGroup

    from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QLabel
    import sys
    from PyQt5.QtCore import QPropertyAnimation,QPoint,QParallelAnimationGroup,QSequentialAnimationGroup
    
    class win(QWidget):
        def __init__(self):
            super().__init__()
            self.resize(400,400)
            self.setWindowTitle('动画学习')
            btn=QPushButton('按钮',self)
            btn.clicked.connect(self.AA)
            btn.move(150,350)
            lab1=QLabel('动画1',self)
            lab1.setStyleSheet('background-color:yellow')
            lab2 = QLabel('动画2', self)
            lab2.setStyleSheet('background-color:red')
            lab2.move(350,0)
            lab3 = QLabel('动画3', self)
            lab3.setStyleSheet('background-color:blue')
            lab3.move(350,350)
            ani1 = QPropertyAnimation(self)
            ani2 = QPropertyAnimation(self)
            ani3 = QPropertyAnimation(self)
            ani1.setTargetObject(lab1)
            ani2.setTargetObject(lab2)
            ani3.setTargetObject(lab3)
            ani1.setPropertyName(b'pos')
            ani2.setPropertyName(b'pos')
            ani3.setPropertyName(b'pos')
            ani1.setStartValue(QPoint(0, 0))
            ani2.setStartValue(QPoint(350, 0))
            ani3.setStartValue(QPoint(350, 350))
            ani1.setEndValue(QPoint(350, 0))
            ani2.setEndValue(QPoint(350, 350))
            ani3.setEndValue(QPoint(350, 0))
            ani1.setDuration(5000)
            ani2.setDuration(5000)
            ani3.setDuration(5000)
    
    
            #pani=QParallelAnimationGroup(self)  #创建并行动画组
            #并行动画组就是组内的动画同时执行
            pani = QSequentialAnimationGroup(self)   #创建串行动画组
            #串行动画组就是组内动画按照顺序一个一个执行
            self.pani=pani
            pani.addAnimation(ani1)   #往动画组里添加动画
            #pani.addPause(5000)  #添加暂停时间----并行动画没有这个指令
            #currentAnimation() -> QAbstractAnimation----并行动画没有这个指令
            pani.addAnimation(ani2)
            pani.insertAnimation(1,ani3)  #插入动画
            #参数1  序号
    
            #removeAnimation(QAbstractAnimation animation)    移除动画
            #animationAt(int index) -> QAbstractAnimation    获取动画
            #takeAnimation(int index) -> QAbstractAnimation   获取并移除
            #animationCount() -> int   动画个数
            #clear()    清空动画
    
            pani.start()  #启动动画组
    
        def AA(self):
            self.pani.pause()   #暂停动画组所有动画
            #其它指令看属性动画
    
    if __name__=='__main__':
        app=QApplication(sys.argv)
        w=win()
        w.show()
        sys.exit(app.exec_())

    天子骄龙

  • 相关阅读:
    bs4抓取糗事百科
    数据结构(复习排序算法)——选泡插(选择,冒泡,插入,希尔)
    Hive-ha (十三)
    Hive优化(十一)
    Hive压缩和存储(十二)
    Hive权限管理(十)
    Hive的视图和索引(九)
    Hive动态分区和分桶(八)
    Hive(七)Hive参数操作和运行方式
    Redis 基础
  • 原文地址:https://www.cnblogs.com/liming19680104/p/11281967.html
Copyright © 2011-2022 走看看