详细说明
QStateMachine类提供了分层的有限状态机。

QStateMachine基于状态图的概念和表示法。 QStateMachine是状态机框架的一部分。
状态机管理一组状态(从QAbstractState继承的类)和这些状态之间的转换(QAbstractTransition的后代)。这些状态和转换定义状态图。一旦建立了状态图,状态机就可以执行它。 QStateMachine的执行算法基于状态图XML(SCXML)算法。该框架的概述给出了几个状态图以及用于构建它们的代码。
使用addState()函数可将顶级状态添加到状态机。使用removeState()函数删除状态。不建议在机器运行时删除状态。
必须先设置初始状态,然后才能启动机器。初始状态是机器启动时进入的状态。然后,您可以启动()状态机。进入初始状态时,将发出starts()信号。
机器是事件驱动的,并保留自己的事件循环。通过postEvent()将事件发布到计算机。请注意,这意味着它异步执行,并且没有运行的事件循环就不会继续执行。由于Qt的转换(例如QEventTransition及其子类)可以处理此事件,因此通常不必直接将事件发布到计算机上。但是对于事件触发的自定义转换,postEvent()很有用。
状态机处理事件并进行转换,直到进入顶级最终状态为止。然后状态机发出finish()信号。您还可以显式地停止()状态机。在这种情况下将发出Stopped()信号。
以下代码片段显示了一种状态机,该状态机将在单击按钮时完成:

QT的QStateMachine类的使用相关推荐

  1. Qt 的QString类的使用

    Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...

  2. Qt的QStyle类的标准图标汇总

    Qt的QStyle类的标准图标用代码显示在界面如下: #include "QtWidgetsApplication1.h" #include<QPushButton> ...

  3. Qt之QImage类

    文章目录 QT--QImage类 QImage获取图像的数据信息 QImage图像格式转换 由RGB格式转换为BGR格式 将彩色图转换为灰度图 图像保存 QImage图像显示在QLabel上 QPix ...

  4. Qt的QVector类

    Qt的QVector类是一个类似标准C++vector的容器类(container class),它将数据存储在连续的内存空间里,因此在执行prepend.insert操作的时候比QList类慢. 如 ...

  5. Qt使用导出类报错:error C2491: “LmcThreadPaddle::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义

    Qt使用导出类报错:error C2491: "LmcThreadPaddle::staticMetaObject": 不允许 dllimport 静态数据成员 的定义 在使用继承 ...

  6. 使用QT设计师界面类创建2个界面,通过按键从界面1切换到界面2

    思路:按钮点击函数hide窗口1同时emit广播点击信号(自己加),main使用connect,窗口1发出点击信号,运行窗口2show显示函数 步骤一:Add new--QT--设计师界面类 步骤二: ...

  7. qt视频播放界面类设计

    0.显示效果 1.设计思路 使用qt制作播放器方法有很多,但是不使用第三方库,则只能使用QVideoWidget类+QMediaPlayer类方法(这里话说太满了,容易被打脸) QVideoWidge ...

  8. QT 操作excel 类封装(转载)

    QT 操作excel 类封装(转载) 原链接:http://blog.csdn.net/liliming1234/article/details/7054941 pro file [plain]  v ...

  9. QT的QSignalTransition类的使用

    详细说明 QSignalTransition类提供基于Qt信号的过渡. 通常,您将使用以发送者和信号作为参数的QState :: addTransition()重载,而不是直接创建QSignalTra ...

最新文章

  1. json loads No JSON object could be decoded 问题解决
  2. mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 public: __cdecl about::about(class QWidget *) (??0abo
  3. js文件中加载其他js文件
  4. 拥有一台你的轻量应用服务器Lighthouse
  5. 第九十一期:架构设计常用到的10种设计模式,你都知道吗?
  6. (操作系统题目题型总结)第四章:存储管理
  7. 《2021国庆出行报告》出炉:全国高速拥堵里程占比同比下降37%
  8. python定义输入变量_Python 2 声明变量 输入输出 练习
  9. android kl文件
  10. C++ 随机数函数rand()与srand()的思考
  11. ArcMAP 分类统计工具
  12. 基于词典和弱标注信息的电影评论情感分析系统
  13. 信号和通信系统第三版(PDF)
  14. 层级结构——组合模式
  15. mysql 报broken pipe_Mysql Broken pipe错误
  16. Fumark支持SLI双卡测试设置
  17. (进制转换)—— 十六进制转换
  18. 有计算机考试励志的文案,中考励志文案(精选50句)
  19. 人物访谈|扎根社区的工程师,月影的前端人生
  20. 爱旅行实现订单支付功能(测试阶段)

热门文章

  1. java中jdbc的封装笔记_JDBC封装学习笔记(三)---面向对象的JDBC,使用preparedStatement...
  2. Java怎么学?实用的学习路线图分享
  3. 读入一个数列和N值,返回按优先级排序的N个数 满足...Python解法
  4. django项目中使用KindEditor富文本编辑器
  5. 爬虫实战:要不是热爱学习,谁会爬小姐姐。分析Ajax来爬取今日头条街拍美图(python)
  6. 神经网络的梯度消失和过拟合产生原因及其解决方案
  7. VTK:二次抽取用法实战
  8. VTK:vtkArrayToTable用法实战
  9. boost::timer::auto_cpu_timer相关的测试程序
  10. BOOST_PROTO_EXTENDS_MEMBERS宏相关的测试程序