当前位置: 首页 > news >正文

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

 主脚本:

# encoding: utf-8
import os
import sysfrom PySide6.QtCore import QPropertyAnimation, QEasingCurvefrom 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:@staticmethoddef btn_animation(obj):ui.animation = QPropertyAnimation(obj, b"minimumWidth")ui.animation.setDuration(300)start_size = obj.width()if obj.width() == 50:end_size = 150else:end_size = 50ui.animation.setStartValue(start_size)ui.animation.setEndValue(end_size)ui.animation.setEasingCurve(QEasingCurve.Linear)ui.animation.start()@staticmethoddef Job_todo_2():pass# 退出系统前的保存、清理、释放等操作@staticmethoddef 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())

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • html实现酷炫美观的可视化大屏(十种风格示例,附源码)
  • 【JS】前端文件读取FileReader操作总结
  • 写代码对人的影响
  • Linux(虚拟机)的介绍
  • vue2 vue3 props 的处理机制
  • 如何利用AI工具获取所有Excel公式?
  • 视频隐写术
  • docker -v 到底和那个一样?type=volume还是type=bind的解释
  • Java环境变量配置详解:从安装到调试
  • 【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)
  • C语言经典习题24
  • Linux进程信号详解【下】
  • springSecurity学习之springSecurity过滤器
  • Flutter大型项目架构:私有组件包管理
  • vue3前端开发-小兔鲜项目-登录功能的业务接口调用
  • python3.6+scrapy+mysql 爬虫实战
  • 《剑指offer》分解让复杂问题更简单
  • 【mysql】环境安装、服务启动、密码设置
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • ES10 特性的完整指南
  • ES6语法详解(一)
  • Flex布局到底解决了什么问题
  • js数组之filter
  • Linux链接文件
  • Netty源码解析1-Buffer
  • ReactNativeweexDeviceOne对比
  • 构建二叉树进行数值数组的去重及优化
  • 机器学习中为什么要做归一化normalization
  • 基于遗传算法的优化问题求解
  • 深度学习入门:10门免费线上课程推荐
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 收藏好这篇,别再只说“数据劫持”了
  • 网络应用优化——时延与带宽
  • 译自由幺半群
  • 最简单的无缝轮播
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 阿里云API、SDK和CLI应用实践方案
  • ​Java并发新构件之Exchanger
  • ​TypeScript都不会用,也敢说会前端?
  • #if 1...#endif
  • #ifdef 的技巧用法
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)springboot教学评价 毕业设计 641310
  • (含笔试题)深度解析数据在内存中的存储
  • (九)One-Wire总线-DS18B20
  • (每日一问)基础知识:堆与栈的区别
  • (强烈推荐)移动端音视频从零到上手(上)
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (四)鸿鹄云架构一服务注册中心
  • (转载)Google Chrome调试JS