Qt状态机概述

状态机框架提供用于创建和执行状态图的类。其概念和符号基于Harel的状态图:复杂系统的可视化形式,这也是UML状态图的基石。状态机执行的语义基于状态图XML (SCXML)

状态图提供了一种图形化方式来建模系统如何对刺激作出反应。这是通过定义系统可能处于的、以及系统如何从一个状态移动到另一个状态的可能的状态来完成的(状态之间的转换)。事件驱动系统(如Qt应用程序)的一个关键特性是行为通常不仅取决于最后一个或当前的事件,还取决于先前的所有事件。有了状态图,这种信息很容易表达。

状态机框架提供了一个API和执行模型,可以用于有效地在Qt应用程序中嵌入状态图的结构和语义。该框架与Qt的元对象系统紧密集成;例如,状态之间的转换可以由信号触发,并且可以配置状态来设置属性和在QObject对象上调用方法。Qt的事件系统用于驱动状态机。

状态机框架中的状态图是分层的。状态可以嵌套在其他状态内部,并且状态机的当前配置由当前活动的状态集组成。状态机的任何有效配置中的所有状态都将有一个共同的祖先。

另请参阅 Qt状态机C++指南Qt状态机QML指南,以及Qt SCXML概述

© 2024 Qt公司。此处包含的文档贡献的版权属于其各自的所有者。本内提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及其相关标志是芬兰和/或其他国家/地区的Qt公司的商标。所有其他商标均为其各自所有者的财产。