PyQt使用QPropertyAnimation开发简单动画

 更新时间:2020年04月02日 10:00:56   作者:LaoYuanPython  
这篇文章主要介绍了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中动画的使用》。

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

相关文章

  • python批量提取图片信息并保存的实现

    python批量提取图片信息并保存的实现

    这篇文章主要介绍了python批量提取图片信息并保存的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python iter()函数用法实例分析

    Python iter()函数用法实例分析

    这篇文章主要介绍了Python iter()函数用法,结合实例形式详细分析了Python iter()函数的功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-03-03
  • PyCharm最新激活码(2020/10/27全网最新)

    PyCharm最新激活码(2020/10/27全网最新)

    Pycharm最新激活码全网最新(2020/10/27更新),适用Intellij idea 2020.2.x,WebStorm 2020.2.x,Pycharm 2020.2.x
    2020-10-10
  • python使用matplotlib模块绘制多条折线图、散点图

    python使用matplotlib模块绘制多条折线图、散点图

    这篇文章主要为大家详细介绍了python使用matplotlib模块绘制多条折线图、散点图的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 在django中使用apscheduler 执行计划任务的实现方法

    在django中使用apscheduler 执行计划任务的实现方法

    这篇文章主要介绍了如何在django中使用apscheduler 执行计划任务,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 一文详解Python垃圾回收

    一文详解Python垃圾回收

    这篇文章主要介绍了一文详解Python垃圾回收的相关资料,需要的朋友可以参考下
    2023-09-09
  • python 中[0]*2与0*2的区别说明

    python 中[0]*2与0*2的区别说明

    这篇文章主要介绍了python 中[0]*2与0*2的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • 找不到Anaconda prompt终端的原因分析及解决方案

    找不到Anaconda prompt终端的原因分析及解决方案

    因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜单部分的初始化,故找不到,这篇文章主要介绍了找不到Anaconda prompt终端的原因分析及解决方案,需要的朋友可以参考下
    2025-03-03
  • 深入理解PyTorch中的nn.Embedding的使用

    深入理解PyTorch中的nn.Embedding的使用

    本文主要介绍了PyTorch中的nn.Embedding的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • PyCharm设置中文(汉化与解除汉化)的方法

    PyCharm设置中文(汉化与解除汉化)的方法

    这篇文章介绍了PyCharm设置中文(汉化与解除汉化)的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论