pyqt动画效果放大与缩小

pyqt动画效果放大与缩小

  • QPropertyAnimation介绍
  • 放大与缩小效果
  • 代码

QPropertyAnimation介绍

QPropertyAnimation 是 PyQt中的一个类,它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation,你可以平滑地改变一个对象的属性值,例如窗口的位置、大小、颜色等。

放大与缩小效果

放大效果:
在这里插入图片描述
缩小效果:
在这里插入图片描述

代码

from PyQt5.QtWidgets import QWidget, QApplication, QFrame, QPushButton  
from PyQt5.QtCore import QRect, QPropertyAnimation  
from PyQt5.QtGui import QColor  class Example(QWidget):  """  一个示例类,继承自QWidget,用于展示一个简单的动画效果。  """  def __init__(self):  """  构造函数,初始化QWidget并调用initUI方法。  """  super().__init__()  # 调用父类QWidget的构造函数  self.initUI()  # 初始化UI  def initUI(self):  """  初始化UI,包括按钮、框架以及设置窗口的基本属性。  """  self.button = QPushButton("Start", self)  # 创建一个QPushButton对象,文本为"Start",父对象为self  self.button.clicked.connect(self.doAnim)  # 将按钮的clicked信号连接到doAnim槽函数  self.button.move(30, 30)  # 移动按钮到指定位置  self.frame = QFrame(self)  # 创建一个QFrame对象,父对象为self  self.frame.setFrameStyle(QFrame.Panel | QFrame.Raised)  # 设置框架的样式为面板且凸起  self.frame.setStyleSheet("QFrame { background-color: blue; }")  # 设置框架的背景色为蓝色  self.frame.setGeometry(QRect(150, 30, 100, 100))  # 设置框架的初始位置和大小  self.setGeometry(300, 300, 380, 300)  # 设置窗口的初始位置和大小  self.setWindowTitle('Animation')  # 设置窗口的标题为"Animation"  self.show()  # 显示窗口  def doAnim(self):  """  定义动画效果,包括创建动画对象、设置动画参数以及启动动画。  """  self.anim = QPropertyAnimation(self.frame, b"geometry")  # 创建一个QPropertyAnimation对象,用于对self.frame的geometry属性进行动画处理  self.anim.setDuration(1000)  # 设置动画的持续时间为1000毫秒(1秒)  self.anim.setStartValue(QRect(150, 30, 100, 100))  # 设置动画开始时的值为初始位置和大小  # 注释了放大的代码,改为缩小  # self.anim.setEndValue(QRect(150, 30, 200, 200))  # 如果要放大,可以取消注释这行代码,注释下面的缩小代码  self.anim.setEndValue(QRect(150, 30, 50, 50))  # 设置动画结束时的值为缩小后的位置和大小  self.anim.start()  # 启动动画  if __name__ == "__main__":  app = QApplication([])  # 创建一个QApplication对象,作为整个应用程序的入口  ex = Example()  # 创建一个Example对象,即主窗口  ex.show()  # 显示主窗口  app.exec_()  # 进入应用程序的主事件循环,等待用户操作或程序结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/9987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器2080ti驱动的卸载与安装

服务器2080ti驱动的卸载与安装 前言1、下载驱动2、驱动卸载与安装2.1 卸载原来驱动2.2 安装新驱动 3、查看安装情况 前言 安装transformers库,运行bert模型时出错,显示torch版本太低,要2.0以上的,所以更新显卡驱动,重…

基于vgg16和efficientnet卷积神经网络的天气识别系统(pytorch框架)全网首发【图像识别-天气分类】

一个能够从给定的环境图像中自动识别并分类天气(如晴天、多云、雨天、雪天闪电等)的系统。 技术栈: 深度学习框架:PyTorch基础模型:VGG16与EfficientNet任务类型:计算机视觉中的图像分类 模型选择 VGG16 …

1.基于python的单细胞数据预处理-归一化

目录 归一化的引入移位对数皮尔森近似残差两个归一化方法的总结 参考: [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 归一化的引入 在质量控制中,已经从数据集删除了低质…

【网络安全】一次sql注入问题的处理

目录 问题 10.60.100.194,修改之前 修改方案 问题解决 测试过程 问题思考与总结 问题 一次sql注入问题的筛查报告,主要是sql注入的问题资源-CSDN文库 doc-new\20-设计文档\34-Mesh设备管理\100-网络安全 10.60.100.194,修改之前 修改…

Multitouch for Mac:手势自定义,提升工作效率

Multitouch for Mac作为一款触控板手势增强软件,其核心功能在于手势的自定义和与Mac系统的深度整合。通过Multitouch,用户可以轻松设置各种手势,如三指轻点、四指左右滑动等,来执行常见的任务,如打开应用、切换窗口、滚…

ansible部署lamp架构

搭建参考:ansible批量运维管理-CSDN博客 定义ansible主机清单 [rootansible-server ~]# vim /etc/hosts 192.168.200.129 host01 192.168.200.130 host02 [rootansible-server ~]# vim /etc/ansible/hosts [webserver] host01 host02 在ansible端编写index.html…

rk3588 安卓13 暴露相机开关接口

以前不知道有个系统属性可以做,后面的代码我几乎都用系统属性来写,比写个额外的广播接口方便多了。 实现一个相机的开关接口给上层调用,也就是打开后,上层无法再调用相机,关闭后可以正常打开,无需重启&…

为什么Redis6.0引入了多线程

Redis 6.0引入了多线程,主要原因有以下几点: 提高网络I/O的吞吐量:多线程可以更有效地处理大量的并发连接和请求,特别是在多核心服务器上。通过使用多线程来处理读写网络套接字,Redis能够更充分地利用系统资源&#x…

AMQP实战

AMQP AMQP是Advanced Message Queuing Protocol的缩写,意为高级消息队列协议。它是一种应用层协议,用于在分布式系统中进行消息通信。AMQP提供了可靠、安全、高效的消息传递机制,可以支持大规模的消息传递场景。 AMQP的主要特点包括以下几点…

DRF渲染之异常处理

异常处理 【1 】引言 Django REST Framework 这个就是我们常常说的DRF APIView的dispatch方法: 当请求到达视图时,DRF 的 APIView 类会调用 dispatch 方法来处理请求。在 dispatch 方法中,有一个关键的步骤是处理异常。如果在视图类的方法…

加速vivado编译工程

系统环境:windows11IDE环境:vivado2023.2工程:vivado自带的example project(wave_gen) Vivado支持多线程,可进一步缩短编译时间,这需要通过如下的Tcl脚本进行设置。综合阶段,Vivado可…

东软集团:用软件、大模型、生态领航智能汽车软件新纪元

“ 这是一次里程碑式的重大升级。 ” 整理 | 云舒 编辑 | 小白 出品|极新 在“新时代 新汽车”2024北京车展上,法拉利、保时捷、宾利、奔驰、宝马、奥迪、路虎、本田、尼桑、铃木以及极氪、零跑、赛力斯、AION埃安等都是东软的伙伴,当然还…

读天才与算法:人脑与AI的数学思维笔记24_预测性文本生成器

1. 起源 1.1. 人类讲故事可能起源于“假如……”这种问答结构 1.2. 讲故事是人类做安全试验的一种方式 1.2.1. 如果你问一个人“假如……”,其实是在探索你的行为对他可能带来的影响 1.3. 最早出现的故事极有可能就源自我们对在周遭混乱的环境中寻找某种秩序的渴…

书生作业:XTuner

作业链接: https://github.com/InternLM/Tutorial/blob/camp2/xtuner/homework.md xtuner: https://github.com/InternLM/xtuner 环境配置 首先,按照xtuner的指令依次完成conda环境安装,以及xtuner库的安装。 然后,我们开始尝试…

activiti 工作流基本使用

Activiti 介绍 Activiti 是一个开源架构的工作流引擎,基于bpmn2.0 标准进行流程定义。其前身是JBPM,Activiti 通过嵌入到业务系统开发中进行使用。 官方是这样介绍 activiti的: Activiti 是领先的轻量级、以 Java 为中心的开源 BPMN 引擎&…

java发送请求-二次开发-get请求json

这里有2个判断 如果param为空则对url发送请求 再继续判断有值时,接口参数时json还是namevalue格式 因为json是带{,所以可以先写为param包含{}, 反之就是请求格式是url?param 请求json要带参数,所以需要使用setEntity方法, 最…

泰迪智能科技携手新乡学院开展“泰迪智能双创工作室”共建交流会

为深化校企合作,实现应用型人才培养目标。5月8日,广东泰迪智能科技股份有限公司河南分公司市场总监张京瑞到访新乡学院数学与统计学院参观交流,数学与统计学院院长赵国喜、副院长皮磊、张秦,教研室主任许寿方、姚广出席本次交流会…

arp icmp 等报文格式

ARP报文格式 ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装…

【GoLang基础】panic和recover有什么作用?

问题引出: Go语言中的panic和recover有什么作用? 解答: 在Go语言中,panic 和 recover 是用于处理程序错误和恢复的机制。 panic: panic 是一个内建函数,用于中止当前函数的执行。当函数内部发生了一些不能继续执行的…

【Qt 学习笔记】Qt常用控件 | 多元素控件 | Table Widget的说明及介绍

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 多元素控件 | Table Widget的说明及介绍 文章编号&#…