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 web.py开发httpserver解决跨域问题实例解析

    python web.py开发httpserver解决跨域问题实例解析

    这篇文章主要介绍了python web.py开发httpserver解决跨域问题实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python中最好用的json库orjson用法详解

    Python中最好用的json库orjson用法详解

    orjson是一个用于python的快速、正确的json库,它的基准是 json最快的python库,具有全面的单元、集成和互操作性测试,下面这篇文章主要给大家介绍了关于Python中最好用的json库orjson用法的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python计算三维矢量幅度的方法

    Python计算三维矢量幅度的方法

    这篇文章主要介绍了Python计算三维矢量幅度的方法,涉及Python矢量运算的相关技巧,需要的朋友可以参考下
    2015-06-06
  • PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)

    这篇文章主要介绍了PyQt5.6+pycharm配置以及pyinstaller生成exe,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • 解析python调用函数加括号和不加括号的区别

    解析python调用函数加括号和不加括号的区别

    这篇文章主要介绍了python调用函数加括号和不加括号的区别,不带括号时,调用的是这个函数本身 ,是整个函数体,是一个函数对象,不须等该函数执行完成,具体实例代码跟随小编一起看看吧
    2021-10-10
  • Python PyQt4实现QQ抽屉效果

    Python PyQt4实现QQ抽屉效果

    这篇文章主要为大家详细介绍了Python PyQt4实现QQ抽屉效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • 基于python时间处理方法(详解)

    基于python时间处理方法(详解)

    下面小编就为大家带来一篇基于python时间处理方法(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • python-opencv实现视频指定帧数间隔图像的保存功能

    python-opencv实现视频指定帧数间隔图像的保存功能

    这篇文章主要介绍了python-opencv实现视频指定帧数间隔图像的保存的方法,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Python基础之进程详解

    Python基础之进程详解

    今天带大家学习Python基础知识,文中对python进程作了详细的介绍,对正在学习python基础的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • 浅谈Python numpy创建空数组的问题

    浅谈Python numpy创建空数组的问题

    今天遇到一个小小的问题,是关于numpy创建空数组,今天特地整理了这篇文章,文中作出了非常详细的介绍,对正在学习python的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05

最新评论