Qt动画控制效果
来源:互联网 发布:c语言二维数组赋值 编辑:程序博客网 时间:2024/06/06 20:18
首先需要创建一个状态机对被控制对象的状态, 动画效果, 信号触发等进行统一管理.
//创建状态机 QStateMachine *pStateMachine = new QStateMachine(this);然后根据动画需求设置状态, 比如希望一个按钮从左边移动到右边, 并且移动过程中放大到2倍.
//设置起始状态 QState *pStartState = new QState(pStateMachine); //绑定属性 pStartState->assignProperty(pButton, "geometry", QRect(10,(this->height()-pButton->height())/2,pButton->width(),pButton->height())); //设置为起始状态 pStateMachine->setInitialState(pStartState); //设置结束状态 QState *pEndState = new QState(pStateMachine); //绑定属性 pEndState->assignProperty(pButton, "geometry", QRect(this->width()-pButton->width()*2-10, (this->height()-pButton->height()*2)/2, pButton->width()*2,pButton->height()*2));
绑定状态属性的时候描述好属性内容, 比如坐标和宽高.然后设置动画效果
//设置动画效果 QPropertyAnimation *pPropertyAnimation = new QPropertyAnimation(pButton, "geometry"); pPropertyAnimation->setDuration(2000); pPropertyAnimation->setEasingCurve(QEasingCurve::OutBounce);
接下来绑定动画信号槽
//绑定动画信号槽 QSignalTransition *pTransitionStart2End = pStartState->addTransition(pButton, SIGNAL(clicked()), pEndState); pTransitionStart2End->addAnimation(pPropertyAnimation); QSignalTransition *pTransitionEnd2Start = pEndState->addTransition(pButton, SIGNAL(clicked()), pStartState); pTransitionEnd2Start->addAnimation(pPropertyAnimation);最后就可以启动状态机了
//开启状态机 pStateMachine->start();
需要完整代码请访问 QtWidgetsExamples
阅读全文
0 0
- Qt动画控制效果
- Qt动画效果展示
- Qt动画效果展示
- Qt动画效果展示
- Qt动画效果展示
- qt 动画效果
- Qt动画效果展示
- Qt之动画效果
- css3控制多重动画效果
- Qt动画效果的幕后英雄:QTimeLine
- Qt动画效果的幕后英雄:QTimeLine
- Qt动画效果的幕后英雄:QTimeLine
- Qt之界面出现、消失动画效果
- Qt之界面出现、消失动画效果
- Qt 之窗口移动的动画效果
- Qt之界面出现、消失动画效果
- Qt动画效果的实现,QPropertyAnimation
- Qt动画效果的幕后英雄:QTimeLine
- 简单实用的多线程学习实例
- Python标准库——collections模块的Counter类
- Android手机底部导航栏遮挡住布局问题解决方案
- VSCode实现C++代码提示、语法高亮、编译和调试
- DLL中传递STL参数(std::string传引用崩溃)
- Qt动画控制效果
- Spring boot JPA 常用操作
- Vuejs技术栈从CLI到打包上线实战全解析
- 字符串
- RPC简介
- mybatis中<foreach>标签在Mysql中的使用
- Hibernate-逆向工程
- 一招看穿电热管质量
- 根据地址返回坐标位置的百度地图api