我有一个应用程序,其中 UI 由 a 驱动,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
(event1) 的 UI。
2 - 在 B 中,远程服务器向应用程序发送一些东西,这应该定义我们是输入 C (event2) 还是 D (event3),但只有在 B 正确退出之后。
问题在于,如果我们静态定义转换(在状态机启动之前),那么当发送 event2 或 event3 时,转换可能会导致 B 被中断(例如,假设用户尚未完成选择某事)
一旦我们知道我们需要哪个状态,是否可以动态更改两种状态之间的转换?
希望描述清楚。
谢谢你。