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

【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(
http://www.xdnf.cn/news/14182.html

相关文章:

  • 玩转Docker | 使用Docker部署Blinko个人笔记工具
  • 如何在FastAPI中构建一个既安全又灵活的多层级权限系统?
  • 刚学到一个使用共享软件而禁用弹窗的工具:微软电脑管家
  • 如何给Hexo-butterfly主题博客在复制时添加版权声明
  • 【图片转 3D 模型】北大·字节跳动·CMU携手——单图15 秒生成结构化3D模型!
  • 创客匠人视角:从外卖大战看创始人IP的差异化定位逻辑
  • veyon(电子教室管理) v4.9.6.1 官方版
  • n8n 从 Docker 到 Node.js 本地环境迁移指南
  • Linux Docker的环境配置与简单使用
  • 《高并发系统性能优化三板斧:缓存 + 异步 + 限流》
  • Spring Boot 自动配置原理深度解析与自定义 Starter 实战
  • 【Unity】MiniGame编辑器小游戏(一)俄罗斯方块【Tetris】
  • [学习] 牛顿迭代法:从数学原理到实战
  • Nginx、CDN、 DNS的关系解析
  • ​​信息系统项目管理师-信息系统工程 知识点总结与例题分析​​
  • 单项链表的操作及其实现
  • 重定向与缓冲区:C语言IO的奥秘(模拟封装glibc)
  • 工业PID算法在温控器的应用与参数说明
  • 《单调队列》题集
  • list is not in GROUPBY clause and contains nonaggregated column ‘*.*‘
  • Windows10电脑开始菜单快速查找应用程序
  • I/O模式之epoll,本文会讲到epoll的相关接口以及底层,还会涉及水平和边缘工作模式,以及通过epoll相关接口实现一个水平工作模式服务端
  • 【DRL】强化学习中的概念和术语
  • 用数学融智学人力资源模型的核心架构:建立可量化的理论框架
  • openMP的简单介绍以及c++执行实例
  • JS递归了解
  • k3s入门教程(三)部署控制面板
  • 第六章 进阶19 琦琦的追求
  • AI数字人:几分钟克隆,短视频制作新革命
  • leetcode-hot-100 (链表)