Qt 动画框架
最近一个项目中的需要做动画效果,很自然就想起来用qt animation framework 。这个框架真的很强大。支持多个动画组合,线性动画,并行动画等。在此总结一下使用该框架一些需要注意的地方:
一:动画的target必须继承至 QObject类,如果存在多继承,QObject 必须为第一继承类。
二:如果使用QPropertyAnimation ,必须注意该对象的生命周期。我就在此出被卡了很长时间。比如我是在 graphicscene中的某一槽函数中进行展示动画的,直接在响应函数中加上如下代码:
QPushButton button("Animated Button");
button.show();
QPropertyAnimation animation(&button, "geometry");
animation.setDuration();
animation.setKeyValueAt(, QRect(, , , ));
animation.setKeyValueAt(0.8, QRect(, , , ));
animation.setKeyValueAt(, QRect(, , , ));
animation.start();
动画效果怎么也出不来。后来才发现,这个局部定义的animation在方法执行完后,生命周期结束,但是动画还没有完成。
所以正确的做法:
m_animation.setTargetObject(m_curItem);
m_animation.setPropertyName("pos");
m_animation.setDuration();
m_animation.setStartValue(QPointF(,));
m_animation.setEndValue(m_curItem->pos());
m_animation.setEasingCurve(QEasingCurve::OutBounce);
m_animation.start();
声明一个类变量m_animation,或者动态new一个 QPropertyAnimation ,但是这个new的对象何时释放,也是一个问题。
建议采用第一种方式。
三:动画支持组动画,状态机模式动画,和graphicsview 框架完美集成
Qt 动画框架的更多相关文章
- Qt动画框架The Animation Framework
动画框架是Kinetic(运动)项目的一部分,它的目标是提供一中简单的方法创建动画的和流畅的GUI.借助Qt动画属性,可以提供非常自由的动画窗体组件和其他对象(QObjects).动画框架也能被用于图 ...
- Qt之动画框架
简述 Qt动画框架旨在为创建动画和平滑的GUI提供了一种简单的方法.通过Qt动画属性,该框架为部件和其它QObject对象的动画操作提供了非常大的自由性,框架也可以被用于图形视图框架中,动画框架中许多 ...
- Qt移动应用开发(二):使用动画框架
Qt移动应用开发(二):使用动画框架 上一篇博客介绍了怎样使用Qt的QML来对屏幕分辨率大小进行适应,其实,不同分辨率的适应是一个很棘手的问题,除了分辨率不同外,宽高比(aspect ratio)也不 ...
- Qt动画效果的实现,QPropertyAnimation
Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成.QAbstractAnima ...
- Qt动画与Qt坐标小记
Qt动画 转载自: <http://jingyan.baidu.com/article/154b46315757b628ca8f4116.html> 和 <http://blog. ...
- Qt状态机框架(状态机就开始异步的运行了,也就是说,它成为了我们应用程序事件循环的一部分了)
状态机框架 Qt中的状态机框架为我们提供了很多的API和类,使我们能更容易的在自己的应用程序中集成状态动画.这个框架是和Qt的元对象系统机密结合在一起的.比如,各个状态之间的转换是通过信号触发的,状态 ...
- Qt 动画快速入门(一)
Qt-4.6动画Animation快速入门三字决 Qt-4.6新增了Animation Framework(动画框架),让我们能够方便的写一些生动的程序.不必像以前的版本一样,所有的控件都枯燥的呆在伟 ...
- js动画框架设计
当你不再依赖JQuery时,当你已经厌倦了引入js类库实现一些动画效果的方式,当你想实现一个简单而实用的动画框架......下面介绍下愚人设计的动画框架:支持动画缓动算法函数,如Linear.Cubi ...
- 给力的轻量级JavaScript动画框架 - jsMorph
jsMorph 是一个独立的轻量级 JavaScript 动画框架,可以用它来操纵多个 HTML 元素的样式,实现动画效果.此框架会自动检测起始位置.转换单位.调整渲染的速度,以此来获得更流畅的渲染体 ...
随机推荐
- Django1.9开发博客(7)- 实现功能
到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...
- python中requests
#发送无参数的get请求import requests def get_html(url): res = requests.get(url) return res.text #发送无参数的post请求 ...
- Object.create()兼容实现方法
if (!Object.create) { Object.create = (function(){ function F(){} return function(o){ if (arguments. ...
- BFC 神奇背后的原理
BFC已经是一个耳听熟闻的词语了,网上有许多关于BFC的文章,介绍了如何触发BFC, 以及BFC的一些用处(如清浮动,防止margin重叠等).虽然我知道如何利用BFC解决这些问题,但当别人问我BFC ...
- uva 1151(最小生成树,枚举子集)
题意:平面上有n个点(1<=N<=1000),你的任务是让所有n个点连通,为此,你可以新建一些边,费用等于两个端点的欧几里得距离的平方.另外还有q(0<=q<=8)个套餐,可以 ...
- what is archeage honor weapons?
in my opinion,there are many kinds of weapons in archeage online, those include basic weapons and ma ...
- asp.net页面跳转sessionid会变
今天发现在一个Asp.net站点中, 同一次登录, 不停刷新页面或者页面跳转, 此时后台Session的SessionID总是变化的. 创建一个页面,添加一个button,后台代码非常简单,如下 ...
- 根据ip获取用户地理位置
各大网站都提供根据ip获取用户地理位置信息,这里以新浪的接口为例子 接口地址为:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js ...
- 一块神奇的树莓派电子板竟让我学会了Linux系统
树莓派(Raspberry Pi)是基于ARM的微型电脑主板,外形只有信用卡大小,因此也被称为新型卡片式电脑,树莓派具有电脑的所有基本功能,可谓麻雀虽小五脏俱全.而其开发组织Raspberry Pi ...
- JS实现表格的增删改
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/T ...