我正在尝试使用QStateMachine建模流程,我可以使用某种“停止”信号来中断该流程。为了测试,我构建了这个简单的StateMachine:
preventDefault()
基本上,StateMachine具有一个由三个状态A,B和C组成的循环。这些状态嵌套在父级“ Running” -QState中。在实际的应用程序中,这可能是一些控制循环,也可能是包含许多状态的某个过程。
我希望能够使用信号停止此过程。为此,我创建了一个“停止”状态,该状态具有应在特定信号(此处为stopSM)上触发的过渡。
但是,这不起作用,因为我猜想QStateMachine似乎没有返回到EventLoop。我知道,如果我为该StateMachine中的每个现有转换创建一个事件并且不使用无条件转换,则可以实现。但是,如果我的StateMachine由100多个州组成,这也将意味着巨大的开销。
有什么方法可以使我的StateMachine对上述示例中的“停止”信号等外部信号做出反应吗?