3

私は主にシーケンシャルなフローだけでなく、いくつかの代替パスを持つプログラムを構築しています。Qt はQStateMachineなどのクラスを提供しているため、ステート マシンがこれを実装する最も簡単な方法であると考えました ( APIも参照)。

ただし、かなりの数の状態 (20 以上) があるようです。また、さまざまな遷移イベントがいくつかあります (ボタン 1 ~ 10 としましょう)。たとえば、ボタン x を押すと、状態 13 から 14 に遷移します。

各状態に入ったり出たりすると、パラメーターを使用して特定の関数を実行できる必要があります。各状態はそのようなシグナルを発しますが、パラメーターを渡すことはできないため、多数のパラメーターのない関数が必要になる可能性があります。

「state-entry」でプロパティを設定できるのQAbstractStateと同様のメソッドがない限り、この問題の再実装も面倒に思えます。assignProperty()QObject

QSignalMapper複数のアクションを処理するために、各状態の遷移信号に複数の Signal-Slot-Connections を使用するのは適切なアプローチですか?

4

1 に答える 1