PySide(PyQt)使用QPropertyAnimation制作动态界面

avatar
作者
筋斗云
阅读量:0

 主脚本:

# encoding: utf-8 import os import sys  from PySide6.QtCore import QPropertyAnimation, QEasingCurve  from UIS import *   # 主画面类 class MainWindow(QMainWindow, animationButton_ui.Ui_MainWindow):     def __init__(self):         super().__init__()         self.setupUi(self)         self.run()  # 初始化         self.signal_slot()  # 信号和槽      # 初始化     def run(self):         self.move(0, 0)         self.show()  # 显示画面      # 画面层面的信号和槽     def signal_slot(self):         self.pushButton_2.clicked.connect(lambda: Jobs.btn_animation(self.frame_1))          pass         # 按钮站的槽函数   class Jobs:     @staticmethod     def btn_animation(obj):         ui.animation = QPropertyAnimation(obj, b"minimumWidth")         ui.animation.setDuration(300)         start_size = obj.width()         if obj.width() == 50:             end_size = 150         else:             end_size = 50         ui.animation.setStartValue(start_size)         ui.animation.setEndValue(end_size)         ui.animation.setEasingCurve(QEasingCurve.Linear)         ui.animation.start()      @staticmethod     def Job_todo_2():         pass      # 退出系统前的保存、清理、释放等操作     @staticmethod     def before_quit():         if ui.windows:             for w in ui.windows:                 w.close()   # 项目的定义 class UI(QObject):  # 将项目定义为QObject,用来管理项目级别的信号和变量      def __init__(self):         super().__init__()         self.run()  # 初始化      # 项目的初始化     def run(self):         # 项目层面的信号和槽         def signal_slot():             pass             # 退出系统之前的操作             app.aboutToQuit.connect(Jobs.before_quit)          signal_slot()   # #############################主程序################################## if __name__ == '__main__':     app = QApplication(sys.argv)     # 项目的实例化     ui = UI()     ui.windows = []  # 所有用到的窗口      # 初始化画面     mainWindow = MainWindow()  # 主画面实例化     ui.windows.append(mainWindow)     sys.exit(app.exec()) 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!