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://img-blog.csdnimg.cn/20190426190559122.png)
博客地址:https://blog.csdn.net/LaoYuanPython
老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036
相关文章
- 使用Power BI 实现动画效果
- 使用flash导出图集动画到unity
- 3ds max动画运动曲线学习
- 推荐几款制作网页滚动动画的 JavaScript 库
- 使用 SVG 动画实现弹性的页面元素效果
- 动画方案 Lottie 学习(二)之实战使用Lottie-web
- 动画函数封装
- Unity3D之Mecanim动画系统学习笔记(四):Animation State
- Unity3D之Mecanim动画系统学习笔记(五):Animator Controller
- Unity3D之Legacy动画系统学习笔记
- Cocos2d-x学习笔记(五岁以下儿童) 精灵两种方式播放动画
- ZingChart Crack,十万条数据记录创建动画和交互式图表
- Spine学习二 -播放Spine动画
- Spine学习二 -播放Spine动画
- 使用Cocos Studio 创建帧动画
- 200多种Android动画效果的强悍框架
- spine动画融合与动画叠加
- Android 中的动画
- Flutter 页面路由过渡动画
- [译] 看动画,学 RxJS
- 基于jQuery加入购物车飞入动画特效
- CSS3 Transitions属性打造动画的下载按钮特效
- Flutter动画: Animation动画基础(三)
- Cocos2d-html5帧动画
- 15前端学习之WebAPI(五):网页特效的三大系列(offset、client、scroll),动画函数封装,轮播图