• 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_())

    天子骄龙

  • 相关阅读:
    面试题:Spring的理解
    静态块与静态变量
    构造方法与构造块的执行顺序(区别于static)
    子类调用父类的构造函数几种情况
    使用json遇到的问题
    页面加载,使用ajax查询某个类别,并且给它们添加(拼接)连接
    对某个商品的上下架状态进行改变
    SSH后台管理系统,实现查询+分页
    跟上Java8
    java中值传递和引用传递
  • 原文地址:https://www.cnblogs.com/liming19680104/p/11281967.html
Copyright © 2020-2023  润新知