pyqt动画效果放大与缩小

2024-05-11 08:04
文章标签 效果 动画 放大 pyqt 缩小

本文主要是介绍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_()  # 进入应用程序的主事件循环,等待用户操作或程序结束

这篇关于pyqt动画效果放大与缩小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/978963

相关文章

以canvas方式绘制粒子背景效果,感觉还可以

这个是看到项目中别人写好的,感觉这种写法效果还可以,就存留记录下 就是这种的背景效果。如果想改背景颜色可以通过canvas.js文件中的fillStyle值改。 附上demo下载地址。 https://download.csdn.net/download/u012138137/11249872

echarts省份标注加散点效果

这个是安徽的效果图,鼠标移到红色标注或者对应的市区位置都会显示对应的数值。 先直接上代码: import anhuiMapJson from './anhui.json'getCoords: function(city) {var res = [];if (city != null) {for (var c in this.cityMap.features) {if (this.cityMa

XMG 抽屉效果

1.比如说我创建了3个View -(void)viewDidLoad{  [ super viewDidLoad]; [self setUpChild] ;         UIPanGestureRecognizer *pan=[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];

ArkTS开发系列之导航 (2.7动画)

上篇回顾: ArkTS开发系列之导航 (2.6 图形) 本篇内容:动画的学习使用 一、 知识储备 1. 布局更新动画 包含显式动画(animateTo)和属性动画(animation) 动画类型名称特点显式动画闭包内的变化都会触发动画执行, 可以做较复杂的动画属性动画属性变化时触发动画执行, 设置简单 说白了,显示动画就是靠闭包事件触发,属性动画是挂在组件身上的属性变化触发 显式动画

Android 扇形网络控件 - 无网络视图(动画)

前言 一般在APP没有网络的情况下,我们都会用一个无网络的提示图标,在提示方面为了统一app的情况,我们一般使用简单的提示图标,偶尔只需要改变一下图标的颜色就一举两得,而不需要让PS来换一次颜色。当然app有图标特殊要求的就另当别论了。 效果图 当你第一眼看到这样的图,二话不说直接让UI给你切一张图标来的快对吧,我其实开始也是这么想的,但是到了做的app越来越多的时候,你就会发现就算是用

33个jQuery与CSS3实现的绚丽鼠标悬停效果

只要你有创意,完全可以使用CSS3来实现漂亮的动效,当然如果配合jQuery,这样会更加强大,实现更多高级绚丽的动画效果。鼠标hover效果是很常用的,虽然很细微的东西,但网站的细节注定的网站的体验,所以也不要忽视这些小细节。 今天设计达人网整理了33个使用jQuery与CSS3实现绚丽的鼠标悬停效果,有些是纯CSS3的,这些效果你完全可以用在你的网页上,让网站获得更好的体验。 Anim

自定义recyclerView实现时光轴效果

时光轴效果在很多app上都有出现,例如淘宝中快递的跟踪,本文将使用recyclerView实现时光轴效果,我们会到自定义控件,首先先看一下效果图: 接下来是步骤分析 1自定义属性 这个大家应该都了解了,根据我们之前的分析,直接在attrs.xml中进行声明 <declare-styleable name="TimeLine"><attr name="beginLine" f

Android滑动回弹效果

原理: addHeaderView里做的事: 1.测量出header的宽高,调用了measureView方法 2.设置LayoutParams,宽:MATCH_PARENT,高:10 3.设置topMargin的值为负的header的高度,即将header隐藏在屏幕最上方 onInterceptTouchEvent: 如果滑动距离为零,让onInterceptTouchEvent处理。屏

PriorityQueue详解(含动画演示)

目录 PriorityQueue详解1、PriorityQueue简介2、PriorityQueue继承体系3、PriorityQueue数据结构PriorityQueue类属性注释完全二叉树、大顶堆、小顶堆的概念☆PriorityQueue是如何利用数组存储小顶堆的?☆利用数组存储完全二叉树的好处? 4、PriorityQueue的`offer`方法动画演示offer插入过程: 5、Pri

「杂谈」Nanopore组装的拟南芥基因组效果如何?

使用的数据来自于一篇发在NC的拟南芥的基因组文章,文章用了minimap/miniasm 进行组装,然后用racon和Pilon进行polish, 最后拼接处62 contigs 且N50 = 12.3 Mb。 wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR217/003/ERR2173373/ERR2173373.fastq.gzseqkit seqk