PyQt使用QPropertyAnimation开发简单动画


Posted in Python onApril 02, 2020

QPropertyAnimation是PyQt5.QtCore模块提供的动画设计类,使用该类可以针对PyQt的界面对象进行动画播放,如果要针对一个指定对象进行动画播放,包括如下步骤:

一、创建动画对象

创建时要确认需要进行动画处理的对象以及对象的变化属性,通过:
QPropertyAnimation(QObject target,QByteArray propertyName,QObject parent)来创建动画对象:

其中:
1、target为准备进行动画动作的对象,可以不填,不填时动画对象创建后要使用setTargetObject来设置动作对象;
2、propertyName为动作对象变更的属性,可以不填,不填时动画对象创建并设置动画动作的对象要使用setPropertyName来设置变更的属性;
3、parent为动作对象的父对象,可以不填,不填默认为None。

二、指定动作的初始状态

动作的初始状态就是指动作对象变更的属性的起始值,如果不设置就是对象的当前值。要设置初始值,使用:
setStartValue(属性初始值)

三、指定动作的最终状态

动作的最终状态就是指动作对象动画结束后属性的值,要设置属性最终值,使用:
setEndValue(属性最终值)

四、指定动画时长

动画时长就是从初始状态变更为最终状态的时长,要设置动画时长使用:
setDuration(time)
单位为毫秒。

五、进行动画播放

使用start()进行动画播放。

案例

要将界面上一个叫testButton的按钮的起始位置向x轴和y轴方向各挪动一10个像素,并用动画形式展现挪动过程,相关动画的代码如下:

def startAnimation(self):
    animation = QPropertyAnimation(self.testButton,b"geometry",self)
    #animation.setTargetObject(self.testButton)
    #animation.setPropertyName(b"geometry")
    startpos = self.testButton.geometry()
    newpos = QRect(startpos.x()+10,startpos.y()+10,startpos.width(),startpos.height())

    #animation.setStartValue(startpos)
    animation.setEndValue(newpos)
    animation.setDuration(1000)
    animation.start()

注意调用方法中的属性名是二进制字符串,因此加"b",而看了网上很多案例属性前都没有加"b",但在PyQt5.13版本中无法正常执行,其他版本老猿不能确认。

关于QPropertyAnimation类更多的内容大家可以参考《pyqt5中动画的使用》。

到此这篇关于PyQt使用QPropertyAnimation开发简单动画的文章就介绍到这了,更多相关PyQt QPropertyAnimation动画内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python的lambda匿名函数的简单介绍
Apr 25 Python
用Python编写简单的定时器的方法
May 02 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python中selenium实现文件上传所有方法整理总结
Apr 01 Python
python抖音表白程序源代码
Apr 07 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
Django分页功能的实现代码详解
Jul 29 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
Jul 30 Python
python实战之用emoji表情生成文字
May 08 Python
python topk()函数求最大和最小值实例
Apr 02 #Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 #Python
Python如何通过百度翻译API实现翻译功能
Apr 02 #Python
Python基于百度AI实现OCR文字识别
Apr 02 #Python
python 穷举指定长度的密码例子
Apr 02 #Python
python3安装OCR识别库tesserocr过程图解
Apr 02 #Python
python简单的三元一次方程求解实例
Apr 02 #Python
You might like
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
php curl常用的5个经典例子
2017/01/20 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
2019/05/29 PHP
laravel7学习之无限级分类的最新实现方法
2020/09/30 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
JS不能跨域借助jquery获取IP地址的方法
2014/08/20 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
pycharm安装和首次使用教程
2018/08/27 Python
Python利用itchat库向好友或者公众号发消息的实例
2019/02/21 Python
Django中使用Celery的方法步骤
2020/12/07 Python
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
初中生学习的自我评价
2013/11/14 职场文书
求职自荐信格式
2013/12/04 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
新学期开学标语
2014/06/30 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
2014年度思想工作总结
2014/11/27 职场文书
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python