具有动态过渡的QStateMachine

时间:2019-04-09 18:32:29

标签: qt qstatemachine

我有一个应用程序,其中UI由QStateMachine驱动,某些状态可以描述为“不可中断”:输入状态后,用户必须与UI交互,完成后然后可以退出状态,但过渡可能取决于外部事件。

这就是我要说明的问题:

A : initial state
B : "non interruptible" state
C, D, .. : other states

然后是一些过渡:

event1 -> transition A_to_B
event2 -> transition B_to_C
event3 -> transition B_to_D

现在,应用程序启动状态机并输入A:

1-用户单击触发QSignalTransition(事件1)的UI。

2-在B中,远程服务器向应用发送一些消息,这应该定义我们是否要输入C(事件2)或D(事件3),但必须在B正确退出后才能进入。

问题是,如果我们静态定义过渡(在启动状态机之前),那么当发送event2或event3时,过渡可能会导致B被中断(例如,用户尚未完成选择操作)

一旦知道我们需要哪一种状态,是否有可能在2种状态之间动态转换?

希望描述清楚。

谢谢。

0 个答案:

没有答案