Qt State Machine 概述
状态机框架提供了用于创建和执行状态图的类。其概念和符号基于 Harel 的状态图:中的概念和符号,它也是 UML 状态图的基础。状态机执行的语义基于状态图 XML(SCXML)。
状态图提供了一种图形化的方式来模拟系统如何对刺激做出反应。这是通过定义系统可能处于的状态,以及系统如何从一种状态移动到另一种状态(状态之间的转换)来实现的。事件驱动系统(如 Qt 应用程序)的一个主要特点是,行为往往不仅取决于最后或当前的事件,还取决于之前的事件。有了状态图,这些信息就很容易表达了。
State Machine 框架提供了一个 API 和执行模型,可用于在 Qt 应用程序中有效嵌入状态图的元素和语义。该框架与 Qt 的元对象系统紧密集成;例如,状态之间的转换可由信号触发,状态可配置为设置属性和调用 {QObject}s 上的方法。Qt 的事件系统用于驱动状态机。
状态机框架中的状态图是分层的。状态可以嵌套在其他状态中,状态机的当前配置由当前激活的状态集组成。状态机有效配置中的所有状态都有一个共同的祖先。
另请参阅 Qt State Machine C++ 指南、Qt State Machine QML 指南和Qt SCXML 概述。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.