QT的QStateMachine类的使用
详细说明
QStateMachine类提供了分层的有限状态机。
QStateMachine基于状态图的概念和表示法。 QStateMachine是状态机框架的一部分。
状态机管理一组状态(从QAbstractState继承的类)和这些状态之间的转换(QAbstractTransition的后代)。这些状态和转换定义状态图。一旦建立了状态图,状态机就可以执行它。 QStateMachine的执行算法基于状态图XML(SCXML)算法。该框架的概述给出了几个状态图以及用于构建它们的代码。
使用addState()函数可将顶级状态添加到状态机。使用removeState()函数删除状态。不建议在机器运行时删除状态。
必须先设置初始状态,然后才能启动机器。初始状态是机器启动时进入的状态。然后,您可以启动()状态机。进入初始状态时,将发出starts()信号。
机器是事件驱动的,并保留自己的事件循环。通过postEvent()将事件发布到计算机。请注意,这意味着它异步执行,并且没有运行的事件循环就不会继续执行。由于Qt的转换(例如QEventTransition及其子类)可以处理此事件,因此通常不必直接将事件发布到计算机上。但是对于事件触发的自定义转换,postEvent()很有用。
状态机处理事件并进行转换,直到进入顶级最终状态为止。然后状态机发出finish()信号。您还可以显式地停止()状态机。在这种情况下将发出Stopped()信号。
以下代码片段显示了一种状态机,该状态机将在单击按钮时完成:
QT的QStateMachine类的使用相关推荐
- Qt 的QString类的使用
Qt的QString类提供了很方便的对字符串操作的接口. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替. QString::fill ( QChar ch, int size ...
- Qt的QStyle类的标准图标汇总
Qt的QStyle类的标准图标用代码显示在界面如下: #include "QtWidgetsApplication1.h" #include<QPushButton> ...
- Qt之QImage类
文章目录 QT--QImage类 QImage获取图像的数据信息 QImage图像格式转换 由RGB格式转换为BGR格式 将彩色图转换为灰度图 图像保存 QImage图像显示在QLabel上 QPix ...
- Qt的QVector类
Qt的QVector类是一个类似标准C++vector的容器类(container class),它将数据存储在连续的内存空间里,因此在执行prepend.insert操作的时候比QList类慢. 如 ...
- Qt使用导出类报错:error C2491: “LmcThreadPaddle::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义
Qt使用导出类报错:error C2491: "LmcThreadPaddle::staticMetaObject": 不允许 dllimport 静态数据成员 的定义 在使用继承 ...
- 使用QT设计师界面类创建2个界面,通过按键从界面1切换到界面2
思路:按钮点击函数hide窗口1同时emit广播点击信号(自己加),main使用connect,窗口1发出点击信号,运行窗口2show显示函数 步骤一:Add new--QT--设计师界面类 步骤二: ...
- qt视频播放界面类设计
0.显示效果 1.设计思路 使用qt制作播放器方法有很多,但是不使用第三方库,则只能使用QVideoWidget类+QMediaPlayer类方法(这里话说太满了,容易被打脸) QVideoWidge ...
- QT 操作excel 类封装(转载)
QT 操作excel 类封装(转载) 原链接:http://blog.csdn.net/liliming1234/article/details/7054941 pro file [plain] v ...
- QT的QSignalTransition类的使用
详细说明 QSignalTransition类提供基于Qt信号的过渡. 通常,您将使用以发送者和信号作为参数的QState :: addTransition()重载,而不是直接创建QSignalTra ...
最新文章
- json loads No JSON object could be decoded 问题解决
- mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 public: __cdecl about::about(class QWidget *) (??0abo
- js文件中加载其他js文件
- 拥有一台你的轻量应用服务器Lighthouse
- 第九十一期:架构设计常用到的10种设计模式,你都知道吗?
- (操作系统题目题型总结)第四章:存储管理
- 《2021国庆出行报告》出炉:全国高速拥堵里程占比同比下降37%
- python定义输入变量_Python 2 声明变量 输入输出 练习
- android kl文件
- C++ 随机数函数rand()与srand()的思考
- ArcMAP 分类统计工具
- 基于词典和弱标注信息的电影评论情感分析系统
- 信号和通信系统第三版(PDF)
- 层级结构——组合模式
- mysql 报broken pipe_Mysql Broken pipe错误
- Fumark支持SLI双卡测试设置
- (进制转换)—— 十六进制转换
- 有计算机考试励志的文案,中考励志文案(精选50句)
- 人物访谈|扎根社区的工程师,月影的前端人生
- 爱旅行实现订单支付功能(测试阶段)
热门文章
- java中jdbc的封装笔记_JDBC封装学习笔记(三)---面向对象的JDBC,使用preparedStatement...
- Java怎么学?实用的学习路线图分享
- 读入一个数列和N值,返回按优先级排序的N个数 满足...Python解法
- django项目中使用KindEditor富文本编辑器
- 爬虫实战:要不是热爱学习,谁会爬小姐姐。分析Ajax来爬取今日头条街拍美图(python)
- 神经网络的梯度消失和过拟合产生原因及其解决方案
- VTK:二次抽取用法实战
- VTK:vtkArrayToTable用法实战
- boost::timer::auto_cpu_timer相关的测试程序
- BOOST_PROTO_EXTENDS_MEMBERS宏相关的测试程序