我正在构建一个具有大部分顺序流程但也有一些替代路径的程序。我认为状态机可能是实现这一点的最简单方法,因为 Qt 提供了这样一个类:QStateMachine(另见API)。
但是,我似乎有很多州(20+)。另外,我有许多不同的转换事件(比如说按钮 1-10)。因此,例如按下按钮 x 将导致状态 13 到 14 的转换。
进入或离开每个状态应该能够执行带有参数的特定功能,而每个状态都发出这样的信号,但不可能传递参数,因此它需要潜在的大量无参数功能。
对于这个问题,重新实现QAbstractState
似乎也很乏味,除非它有类似于assignProperty()
允许QObject
在“状态条目”上设置属性的方法。
为QSignalMapper
每个状态的转换信号加上几个 Signal-Slot-Connections 来处理多个动作是一种合适的方法吗?