Qt ステートマシンの概要
ステートマシン・フレームワークは、ステートグラフの作成と実行のためのクラスを提供します。概念と表記法は、Harel のStatecharts に基づいています:複雑なシステムのための視覚的なフォーマリズムで、UML のステート・ダイアグラムの基礎にもなっています。ステートマシン実行のセマンティクスは、ステートチャートXML(SCXML)に基づいている。
ステートチャートは、システムが刺激にどのように反応するかをモデリングするグラフィカルな方法を提供します。これは、システムが取り得る状態と、システムがある状態から別の状態に移行する方法(状態間の遷移)を定義することによって行われます。イベント駆動型システム(Qtアプリケーションなど)の主な特徴は、動作が最後のイベントや現在のイベントだけでなく、それ以前のイベントにも依存することが多いということです。ステートチャートを使えば、この情報を簡単に表現できる。
ステートマシン・フレームワークは、ステートチャートの要素とセマンティクスを Qt アプリケーションに効果的に組み込むために使用できる API と実行モデルを提供します。例えば、ステート間の遷移はシグナルによってトリガーすることができ、ステートはプロパティを設定したり、{QObject}のメソッドを呼び出すように設定することができます。Qtのイベントシステムは、ステートマシンを駆動するために使用されます。
ステートマシン・フレームワークのステートグラフは階層的です。ステートマシンの現在のコンフィギュレーションは、現在アクティブなステートのセットで構成されます。ステートマシンの有効な構成内のすべての状態は、共通の祖先を持ちます。
Qt State Machine C++ Guide」、「Qt State Machine QML Guide」、「Qt SCXML Overview」も参照してください 。
このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。