python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > PyQt 使用QPropertyAnimation动态界面

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动态界面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文