[Q学习]13 Qt状态机框架——简单的状态机

原创文章,可以转载,转载时请以超链接形式保留本文地址、作者信息和本声明。否则将追究法律责任。

状态机是面向对象中不可缺少的一部分,它可以用于描述对象(系统)如何响应对外部输入。状态机首先状态机定了对象(系统)能够到达的状态,然后定义状态迁移,即如何从一个状态转变到另一个状态。Qt中的状态机紧密地集成了Qt元对象系统,比如状态迁移可以通过信号触发,用户可以设置状态来设施QObject的属性,调用QObject的方法。Qt状态机框架是由事件系统驱动工作的。

Qt中使用状态机的步骤:

1 使用QstateMachine声明状态机A;

2 使用QState或者QState子类声明若干状态S1~Sn,将这些状态加入状态机A;

3 调用QState::addTransition设置S1到Sn各状态间的转换;

4 设置S1到Sn中某个状态为A的初始状态;

5 调用void QStateMachine::start()启动状态机。

先来看一个小例子:一个状态机有三个状态,分别为S1,S2,S3,状态机通过一个QPushButton对象控制,当按钮被按下时,状态机发生状态迁移。状态机初始态为S1。


Qt中声明状态机使用QstateMachine,声明状态QS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值