当前位置: 首页 > news >正文

【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机

1、简述

1)当状态很多时,可以对状态分组,可以实现状态在组内跳转,组之间跳转,还能实现跨组跳转。

比如三个子状态state1_1、state1_2、state1_3 在某个条件下都会跳转到状态 state2,这时就可以将这三个子状态state1_1、state1_2、state1_3分组到父状态 state1 中,并实现从 state1 到 state2 的跳转。
好处是,不用分别写 state1_1、state1_2、state1_3 到 state2 的跳转条件。

2)分组后,从 state1 跳到 state2 ,再跳回 state1 状态后,默认将从 state1 的初始状态开始;如果想回到 state1 的上次历史状态,可以使用 QHistoryState

2、状态分组示例

1)实现三个父状态

m_machine    = new QStateMachine(

相关文章:

  • Git命令与代码仓库管理
  • qt中自定义控件编译成动态库
  • RabbitMQ核心函数的参数意义和使用场景
  • 深入解析JVM字节码执行引擎
  • SpringBoot自动化部署实战指南
  • 5、ZYNQ PL 点灯--流水灯
  • Android 中 OkHttp 的自定义 Interceptor 实现统一请求头添加
  • Laravel 从版本 5 到 12 每个版本都引入了一些新的特性、改进和弃用的功能
  • Android 获取签名 keystore 的 SHA1和MD5值
  • 前端构建工具(Webpack\Vite\esbuild\Rspack)拆包能力深度解析
  • TC3xx中PFLASH缓存对XCP标定常量的影响
  • 13_算法链与管道
  • 机器学习算法_支持向量机
  • Linux免驱使用PCAN,使用方法以Ubuntu为例
  • 123数字人视频剪辑源码搭建部署/数字人视频创作技术开发
  • 数据结构 学习 栈 2025年6月14日 11点09分
  • 使用Docker安装FFmpeg
  • YOLOv2 训练过程详解:从数据到模型落地的全流程解析
  • Javascript和NodeJS异常捕获对比
  • vim编辑常用命令
  • 做网站二级页面的/鹤壁网络推广哪家好
  • 企业网站备案需要什么/在哪里可以发布自己的广告
  • 营销网站报备/软文广告经典案例300字
  • 上海有哪些做网站/站长统计网站统计
  • 有哪些做笔译的网站/什么平台可以免费发广告
  • 一起做网店货源/seo网络优化师招聘