pyqt动画效果放大与缩小

news2024/12/30 2:21:26

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.coloradmin.cn/o/1661938.html

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

相关文章

[每周一更]-(第96期):Rsync 用法教程:高效同步文件与目录

文章目录 一、引言二、rsync 基本概念三、介绍rsync 是什么?四、安装五、rsync 基本语法常见示例(默认ssh协议): 六、常用选项1. -a 或 --archive2. -v 或 --verbose3. -z 或 --compress4. --delete5. --exclude6. --exclude-from…

飞腾E2000运行Zephyr操作系统

Phytium-Zephyr-SDK 1. 仓库介绍 1.1 本仓库特色 此项目是一个开源软件,专为物联网领域设计,基于Zephyr实时操作系统,针对Phytium系列CPU进行了专门的适配和应用开发。我们的目标是降低开发者的使用门槛,提供了部署文档和使用指…

【算法入门赛】B. 自助店评分(C++、STL、推荐学习)题解与代码

比赛地址:https://www.starrycoding.com/contest/8 题目描述 在上一场的入门教育赛中,牢 e e e找到了所有自助店的位置,但是他想发现一些“高分好店”,于是他利用爬虫技术从“小众点评APP”中爬取了武汉所有自助店的评分。 评分…

Linux应用(四)——系统IO函数

本节学习linux系统中常见的IO函数,讲解及其基本用法; 一、 open/close函数 open函数作用:系统调用open函数,打开指定路径的文件; int open(const char *pathname, int flags);打开一个存在的文件&#xff1…

【大学物理】东北大学-马文蔚听课笔记

4.1刚体的定轴转动_哔哩哔哩_bilibili 此笔记为课堂学习笔记~ 4.1刚体的定轴转动 基本教学要求 什么时刚体呢? 研究刚体运动切口 平动:刚体中所有的点的运动轨迹都完全相同。 转动:分为¥定轴转动和非定轴转动 刚体转动的角速度…

人脸采集训练识别

项目概述: 本地摄像头采集人脸数据集,通过训练得到trainingData.yml模型,加载haarcascade_frontalface_default.xml实现人脸识别。haarcascade_frontalface_default.xml 文件并不是一个完整的人脸识别模型,而是一个用于检测正脸&a…

基于Spring Cloud的房产销售平台设计与实现

基于Spring Cloud的房产销售平台设计与实现 开发语言:Java 框架:SpringCloud JDK版本:JDK1.8 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统部分展示 前台首页界面,前台首页包括房源信息、…

RS485空调系统到BACnet江森楼宇系统的高效整合攻略

智慧城市的每一栋建筑都在追求更高的能效与更佳的居住体验,而这一切的实现离不开强大且灵活的楼宇自动化系统。其中,协议转换网关作为连接不同设备的纽带,扮演着至关重要的角色。本文将以一个典型的商业综合体为例,揭秘BACnet协议…

零基础开发新闻小程序带评论点赞收藏功能,可以回复评论,借助小程序云开发云模板开发一款图文小程序,新闻列表新闻详情,登录注册功能

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台 一,技术选型和技术点 1,小程序前端 wxml css JavaScript MINA原生小程序框架 2,数据库 云开发 云数据库 云…

力扣:62. 不同路径

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业

20232906 2023-2024-2 《网络与系统攻防技术》第九次作业 1.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件。 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串。 该程序同时包含另一个代码片段,getShell&am…

【负载均衡式在线OJ项目day4】编译运行功能整合及打包网络服务

一.前言 前面两天完成了编译和运行两个子模块,今天的任务是完成CompileRun模块,它的任务如下: 解析来自客户端的Json字符串,反序列化提取编译运行需要的数据,即代码,时间限制和空间限制把代码写入临时文件…

太阳能无人机的多元化应用

随着新能源技术的不断发展和成熟,太阳能在无人机的应用技术已经成熟。太阳能无人机得到了量产和广泛的应用。传统无人机相比,太阳能无人机无需燃油,运行费用低廉,搭载多种高科技设备,能够高效、多元化地采集和分析各类…

公司活动想找媒体报道宣传怎样联系媒体?

作为公司宣传负责人,我深知媒体报道对于企业活动宣传的重要性。然而,在过去,每当有重要活动需要媒体曝光时,我总会被繁琐的媒体联系工作所困扰。 那时,我需要一家家地查询媒体联系方式,发送邮件、打电话,甚至亲自前往媒体机构进行沟通。然而,这样的过程不仅费时费力,而且效率低…

成本降低 90%,出海社交平台 Typing 基于 Databend 的大数据探

Typing(输入中科技)成立于 2022 年,是一家主要面向东南亚、拉美、中东等海外地区提供社交平台的出海企业。其社交平台类似于国内的 Soul、陌陌等,提供视频直播、语音聊天室、短视频、生活分享、文字聊天等社交功能,注册…

英语学习笔记5——Nice to meet you.

Nice to meet you. 很高兴见到你。 词汇 Vocabulary Mr. 先生 用法:自己全名 / 姓 例如:Mr. Zhang Mingdong 或 Mr. Zhang,绝对不能是 Mr. Mingdong! Miss 女士,小姐 未婚 用法:自己全名 / 姓 例如&#…

区块链(打新)如何被割韭菜

看上去,像我只要去每个都买一遍新发行的代币,一定可以成功的 但是好像没有想象中这么简单,因为这些山寨币,庄家可以自己控盘的,看上去好像有跌宕起伏的买卖,但是一单掀桌子,庄家他自己都不玩了…

SOCKET编程(3):相关结构体与函数

相关结构体与函数 sockaddr、sockaddr_in结构体 sockaddr和sockaddr_in详解 struct sockaddr共16字节,协议族(family)占2字节,IP地址和端口号在sa_data字符数组中 /* Structure describing a generic socket address. */ struct sockaddr {__SOCKADDR…

推荐3个实用的github开源项目

目录: 1、AI生成高清短视频 2、媒体平台爬虫 3、文本转语音项目

ubuntu server 22.04 安装docker、docker-compose

ubuntu server 22.04安装docker有两种方式,第一种是使用ubuntu镜像源的软件包进行安装,第二种使用官方GPG密钥手动添加Docker存储库方式进行安装,两种方式都可以,但第二种方式略复杂,这里介绍第一种比较简单的安装方式…