`
缥缈孤鸿
  • 浏览: 40553 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

Qt状态机实例

    博客分类:
  • C++
阅读更多
#include <QApplication>
#include <QStateMachine>
#include <QPushButton>
#include <QSignalTransition>
#include <QPropertyAnimation>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QWidget *w=new QWidget;
    w->resize(240,320);
    QPushButton *button = new QPushButton("hicjiajia",w);
    QStateMachine *machine = new QStateMachine;     //新建状态机
    QState *state1 = new QState(machine);     //状态1
    state1->assignProperty(button,"geometry",QRect(0,0,80,30));    //绑定button的geomertry属性
    machine->setInitialState(state1);     //state1设为初始化状态
    QState *state2 = new QState(machine);
    state2->assignProperty(button,"geometry",QRect(w->width()-30,w->height()-80,30,80));
    QFont font = QFont("Airl", 12);
    state2->assignProperty(button,"font",font);     //状态2字体


    QPropertyAnimation *ani=new QPropertyAnimation(button,"geometry");
    ani->setDuration(2000);
    ani->setEasingCurve(QEasingCurve::OutBounce);   //动画效果—弹跳

    QSignalTransition *transition1=state1->addTransition(button,SIGNAL(clicked()),state2);      //动画触发信号
    transition1->addAnimation(ani);
    QSignalTransition *transition2=state2->addTransition(button,SIGNAL(clicked()),state1);
    transition2->addAnimation(ani);
    machine->start();     //开启状态机

    w->show();
    return app.exec();
}
分享到:
评论

相关推荐

    qt并发状态机应用实例

    在用qt状态机的时候,往往会遇到一个问题,就是在实际任务执行中,我们不希望两个并行的任务,其中一个结束,就退出当前父状态的情况,一般都会要求两个并行的状态都结束后,再跳出当前父状态。 该实例已经应用到...

    qt状态机类应用实例源码

    qt状态机类应用实例源码

    QT QML声明式状态机

    本课程是用纯QML语言实现状态机的基础课程,用九个实例,详细描述了状态机的各种概念。 内容包含:状态的嵌套、并行状态、历史状态、最终状态、转换的继承、多状态机的协同等。 最后分析了QT中状态机的各种实现方式...

    C++ QT5 电子书教程

    1.5调用系统DLL判断网络连接状态 152 第十二章 进程与线程 1.1进程管理器 155 1.2线程QThread应用 158 1.3线程QRunnable应用 159 第十三章 数据安全 1.1 QByteArray加密数据 163 1.2 AES加密数据 164 1.3 MD5 ...

    qt5教程(附标签)

    1.5 进度条实例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 53 1.6Timer 实时更新时间 。。。。。。。。。。。。。。。。。。。。。。。。...

    C++ qt5 电子版教程

    1.5调用系统DLL判断网络连接状态 152 第十二章 进程与线程 1.1进程管理器 155 1.2线程QThread应用 158 1.3线程QRunnable应用 159 第十三章 数据安全 1.1 QByteArray加密数据 163 1.2 AES加密数据 164 1.3 MD5 ...

    元器件应用中的电容式触摸传感器的提升应用设计

    它被安装在汽车座位里以控制气囊配置和安全带预紧装置,在洗碗机和干燥机中以校正旋转桶的状态,甚至冰箱也使用其来控制自动去冰过程。但是直到现在,它最大的潜在应用领域还是触摸开关,触摸开关已越来越多地出现在...

    Android保持屏幕常亮唤醒状态的方法

    本文实例讲述了Android保持屏幕常亮唤醒状态的方法。分享给大家供大家参考,具体如下: 第一步: 首先添加权限: 代码如下:”android.permission.WAKE_LOCK”&gt; 第二步:代码实现如下: public class ...

    java百度贴吧登陆源码-Android--:Android+上百实例源码分析以及开源分析+集合打包

    实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件。但源码好像是c++。 2、aidl跨进程调用 服务端onBind暴露,然后客户端bindService得到aidl对象 3、UI设计之 仿做蘑菇街UI设计 源码 包含...

    Linux高性能服务器编程

    8.5.1 半同步半异步模式 8.5.2 领导者追随者模式 8.6 有限状态机 8.7 提高服务器性能的其他建议 8.7.1 池 8.7.2 数据复制 8.7.3 上下文切换和锁 第9章 IO复用 9.1 select系统调用 9.1.1 select API 9.1.2...

    Linux部署服务器常用命令.doc

    getconf LONG_BIT 看输出 所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node linux1 Instance orcl2 is running on node linux2 单个实例的状态 $ srvctl status instance...

    JAVA面试题最全集

    87.UNIX中QT是什么意思? 88.在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么?IS09000和CMM(软件能力成熟度模型)认证是国际上...

    百度location

    package xgpushdemo.qt.an.appmap; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget....

    网管教程 从入门到精通软件篇.txt

    DST:刺绣机图形文件 DSW:Microsoft Developer Studio工作区文件 DTA:World Bank(世界银行)的STARS数据文件 DTD:SGML文档类型定义(DTD)文件 DTED:地面高度数字数据(图形的数据格式)文件 DTF:...

Global site tag (gtag.js) - Google Analytics