PyQt学习随笔:使用QPropertyAnimation开发简单动画
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中动画的使用》。
博客地址:https://blog.csdn.net/LaoYuanPython
老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036
最新文章
- ros问题总结
- jquery内容选择器(匹配内容不为空的元素)
- Java——文件选择框:JFileChooser
- Java Statement和PreparedStatement性能测试(转)
- 小记:获取系统时间的long值,格式化成可读时间。
- VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)
- 【Shell脚本学习7】Shell脚本学习指南分享
- [Codeforces673A]Bear and Game(水题,思路)
- springside springmvc 的一个SB问题
- tab选项卡
- java Serializable和Externalizable序列化反序列化详解--转
- shell字符串替换
- Nginx文档-初学者指南
- [H5]range对象的setStart/setEnd方法
- oracle管理权限和角色
- StackExchange.Redis 异步超时解决方案
- [转帖]CPU Cache 机制以及 Cache miss
- test png
- selenium+java定位163/126邮箱元素显示定位失败解决
- CentOS 7下安装Python3.6
热门文章
- leetcode115:search -insert-position
- leetcode116:search-for-a-range
- 二维码生成与windows系统IP查询功能
- 纯CSS实现3D正方体动画效果
- 1+X云计算平台运维与开发(中级)eNSP A~E卷 试题+答案
- LeetCode-680-验证回文字符串 Ⅱ
- [MIT6.006] 10. Open Addressing, Cryptographic Hashing 开放定址,加密哈希
- 【应用服务 App Service】App Service 新手资料包
- 利用.NET 5和Github Action 自动执行米游社原神每日签到福利
- EDI在服装行业的应用