qt同时两个动画执行_QT页面切换动画实现

本文介绍如何在QT项目中实现页面切换的动画效果,通过QPropertyAnimation改变QWidget属性,如位置、大小等,实现平滑过渡。同时讨论了QParallelAnimationGroup用于同时变化多个属性,并对比了QStackedWidget与共享父窗体布局的差异,提供了实现场景动画的代码示例。
摘要由CSDN通过智能技术生成

近期公司要求在QT的项目界面上加入页面切换的动画效果,笔者从网上找了很多资料都没有找到合适的,现在算是找到了解决方案,测试了下感觉效果还可以,所以拿出来和大家分享下。

QT在动画方面感觉较安卓或者IOS还是有一定差距的,尤其是纯C++的QT,后来加入qml后动画效果就比较多了,但是两者的混合编程还是个难点。

因为需要切换的页面上已经有很多复杂的组件,舍弃全部用qml重写工作量非常大。所以一开始笔者考虑的是外部页面用qml实现,以前写好的组件直接放到qml实现的页面上,实际上就是在原QWidget外面加层qml的衣服。结果查阅了半天资料发现这根本不可能实现,具体可以去看这个帖子:http://bbs.csdn.net/topics/390984937

然后笔者就考虑最坏情况了,QWidget中嵌入qml,需要切换的页面全部用qml实现,以前组件抛弃不用了。理论上这个方案确实可行,用到的应该是QDeclarativeView类(4.8版本),5.3以后应该改成QQuickWidget 了,笔者用的5.2.1版本没有找到相应的类,所以没去测试。然后笔者抱着不放弃的精神又进行了一番搜索,最终发现QPropertyAnimation可以完美的解决笔者的问题。下面就来具体看实现流程,对于此类笔者不再去详述它的用法,网上资料比较多,笔者只列出实现的关键点。

界面有哪些属性可以变换

QPropertyAnimation(QObject * target, const QByteArray & propertyName, QObject * parent = 0)

上面是动画类的构造函数,第一个参数是加动画的目标对象,关键是第二个参数

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值