剖析 Qt 实现动画状态机实例

移动开发
本文介绍的是Qt 实现动画状态机实例,一个有趣的实例,实现动画方式。先来看内容。

Qt 实现动画状态机实例是本文介绍的内容,Qt 4.6引入了动画框架,摆脱了以往控件只能安静的呆在布局里的时代,利用Qt提供的动画框架,我们可以让控件跳起舞来,呵呵,很有趣啊… 在Qt 4.7中又引入了Qt quick技术,其中的QML语言也是专门来定制GUI动画效果的,这是一种新的GUI动画机制,我刚也接触了些,语法类似CSS,实现预定义的动画很方便,所见即所得,路还得一步步走,先学习一下传统的Qt动画方式——状态机

这里先直接给出例子(见图):

实现动画

 

下面是源码:

  1. #include <QApplication> 
  2. #include <QStateMachine> 
  3. #include <QPushButton> 
  4. #include <QSignalTransition> 
  5. #include <QPropertyAnimation> 
  6. int main(int argc,char **argv){  
  7.     QApplication app(argc,argv);  
  8.         QWidget *w=new QWidget;  
  9.             w->resize(240,320);  
  10.                QPushButton *button = new QPushButton("hicjiajia",w);  
  11.                 QStateMachine *machine = new QStateMachine;     //新建状态机  
  12.                QState *state1 = new QState(machine);     //状态  
  13.                state1->assignProperty(button,"geometry",QRect(0,0,80,30));    //绑定button的geomertry属性  
  14.               machine->setInitialState(state1);     //state1设为初始化状态  
  15.              QState *state2 = new QState(machine);  
  16.             state2->assignProperty(button,"geometry",QRect(w->width()-30,w->height()-80,30,80));  
  17.             QFont font = QFont("Airl", 12);   
  18.         state2->assignProperty(button,"font",font);     //状态2字体  
  19.         QPropertyAnimation *ani=new QPropertyAnimation(button,"geometry");  
  20.          ani->setDuration(2000);    ani->setEasingCurve(QEasingCurve::OutBounce);   //动画效果—弹跳   
  21.          QSignalTransition *transition1=state1->addTransition(button,SIGNAL(clicked()),state2);//动画触发信号  
  22.              transition1->addAnimation(ani);  
  23.         QSignalTransition *transition2=state2->addTransition(button,SIGNAL(clicked()),state1);  
  24.         transition2->addAnimation(ani);   
  25.         machine->start();     //开启状态机   
  26.         w->show();  
  27.         return app.exec();  

小结:剖析 Qt 实现动画状态机实例的内容介绍完了,希望本文对你有所帮助,你应该也对这个实例很感兴趣吧!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-06-29 18:36:59

Qt 动画 状态机

2010-02-24 09:32:38

Visual Stud

2023-03-06 07:35:30

状态机工具订单状态

2020-12-02 13:33:58

函数指针编程语言

2010-06-18 12:38:38

UML状态机视图

2021-07-08 09:15:20

单片机编程状态机编程语言

2010-06-18 13:25:44

UML状态机视图

2013-09-03 09:57:43

JavaScript有限状态机

2024-01-08 09:46:47

2010-06-12 11:11:55

UML应用

2020-10-15 10:38:35

C语言状态模型

2010-07-08 13:03:31

UML状态机图

2020-03-27 10:50:29

DSL 状态机工具

2022-03-06 19:57:50

状态机easyfsm项目

2021-12-28 08:24:18

函数指针有限状态机编程

2010-07-12 15:00:56

UML状态机视图

2021-08-19 09:00:00

微服务开发架构

2021-04-29 09:31:05

前端开发技术

2010-06-18 13:15:07

UML状态机图

2014-10-24 13:48:05

2014WOT深圳手游
点赞
收藏

51CTO技术栈公众号