PySide(PyQt)使用QPropertyAnimation制作动态界面的示例代码
作者:深蓝海拓
文章介绍了如何使用PySide或PyQt的QPropertyAnimation类来创建动态界面效果,感兴趣的朋友一起看看吧
主脚本:
# 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())
到此这篇关于PySide(PyQt)使用QPropertyAnimation制作动态界面的文章就介绍到这了,更多相关PyQt 使用QPropertyAnimation动态界面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!