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 相关文章推荐
wxpython学习笔记(推荐查看)
Jun 09 Python
Python实现Const详解
Jan 27 Python
Python下载懒人图库JavaScript特效
May 28 Python
python生成IP段的方法
Jul 07 Python
Python的Flask框架的简介和安装方法
Nov 13 Python
python实现感知器
Dec 19 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
python文本数据处理学习笔记详解
Jun 17 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
python实现两个字典合并,两个list合并
Dec 02 Python
使用Pyhton 分析酒店针孔摄像头
Mar 04 Python
Python 可视化神器Plotly详解
Dec 26 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
php5 and xml示例
2006/11/22 PHP
linux iconv方法的使用
2011/10/01 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
把JS与CSS写在同一个文件里的书写方法
2007/06/02 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python求众数问题实例
2014/09/26 Python
Python 自动补全(vim)
2014/11/30 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
大学毕业生个人自荐信范文
2014/01/08 职场文书
总经理岗位职责描述
2014/02/08 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
干部选拔任用方案
2014/05/26 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
导师工作推荐信
2015/03/27 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
高一作文之暖冬
2019/11/09 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL