PySide(PyQt)使用QPropertyAnimation制作动态界面的示例代码

 更新时间:2025年03月17日 09:13:03   作者:深蓝海拓  
文章介绍了如何使用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动态界面内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python用户推荐系统曼哈顿算法实现完整代码

    Python用户推荐系统曼哈顿算法实现完整代码

    这篇文章主要介绍了Python用户推荐系统曼哈顿算法实现完整代码,简单介绍了曼哈顿距离的定义,然后分享了其Python实现代码,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • python 进程池pool使用详解

    python 进程池pool使用详解

    这篇文章主要介绍了python 进程池pool使用的相关资料,帮助大家更好的理解和学习python进程,感兴趣的朋友可以了解下
    2020-10-10
  • anaconda的安装和配置环境及导入pycharm的方法

    anaconda的安装和配置环境及导入pycharm的方法

    这篇文章主要介绍了anaconda的安装和配置环境及导入pycharm的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python实现FIFO缓存置换算法

    Python实现FIFO缓存置换算法

    这篇文章主要为大家详细介绍了Python实现FIFO(先进先出)缓存置换算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Python可视化工具如何实现动态图表

    Python可视化工具如何实现动态图表

    这篇文章主要介绍了Python可视化工具如何实现动态图表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • PySide6 QMessageBox的具体使用

    PySide6 QMessageBox的具体使用

    QMessageBox是PySide6中用于显示模态对话框的组件,常用于提示信息、警告、错误或获取用户确认,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • 解决Django no such table: django_session的问题

    解决Django no such table: django_session的问题

    这篇文章主要介绍了解决Django no such table: django_session的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python中用PIL库批量给图片加上序号的教程

    Python中用PIL库批量给图片加上序号的教程

    这篇文章主要介绍了Python中用PIL库批量给图片加上序号的教程,PIL库是Python中一个非常强大的处理图片的库,需要的朋友可以参考下
    2015-05-05
  • 对python .txt文件读取及数据处理方法总结

    对python .txt文件读取及数据处理方法总结

    下面小编就为大家分享一篇对python .txt文件读取及数据处理方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python实现图片彩色转化为素描

    python实现图片彩色转化为素描

    这篇文章主要为大家详细介绍了python实现图片彩色转化为素描,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01

最新评论