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

最新文章

  1. ros问题总结
  2. jquery内容选择器(匹配内容不为空的元素)
  3. Java——文件选择框:JFileChooser
  4. Java Statement和PreparedStatement性能测试(转)
  5. 小记:获取系统时间的long值,格式化成可读时间。
  6. VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)
  7. 【Shell脚本学习7】Shell脚本学习指南分享
  8. [Codeforces673A]Bear and Game(水题,思路)
  9. springside springmvc 的一个SB问题
  10. tab选项卡
  11. java Serializable和Externalizable序列化反序列化详解--转
  12. shell字符串替换
  13. Nginx文档-初学者指南
  14. [H5]range对象的setStart/setEnd方法
  15. oracle管理权限和角色
  16. StackExchange.Redis 异步超时解决方案
  17. [转帖]CPU Cache 机制以及 Cache miss
  18. test png
  19. selenium+java定位163/126邮箱元素显示定位失败解决
  20. CentOS 7下安装Python3.6

热门文章

  1. leetcode115:search -insert-position
  2. leetcode116:search-for-a-range
  3. 二维码生成与windows系统IP查询功能
  4. 纯CSS实现3D正方体动画效果
  5. 1+X云计算平台运维与开发(中级)eNSP A~E卷 试题+答案
  6. LeetCode-680-验证回文字符串 Ⅱ
  7. [MIT6.006] 10. Open Addressing, Cryptographic Hashing 开放定址,加密哈希
  8. 【应用服务 App Service】App Service 新手资料包
  9. 利用.NET 5和Github Action 自动执行米游社原神每日签到福利
  10. EDI在服装行业的应用