Qt State Machine 概要

ステートマシンフレームワークは、ステートグラフを作成および実行するためのクラスを提供します。その概念と表記法は、Harel の『Statecharts: A visual formalism for complex systems』に基づいており、これは UML ステート図の基礎ともなっています。ステートマシンの実行のセマンティクスは、State Chart XML (SCXML) に基づいています。

ステートチャートは、システムが刺激にどのように反応するかをグラフィカルにモデル化する方法を提供します。これは、システムが取り得る状態と、システムがある状態から別の状態へどのように移行するか(状態間の遷移)を定義することで実現されます。 イベント駆動型システム(Qtアプリケーションなど)の重要な特徴は、その挙動が多くの場合、直近または現在のイベントだけでなく、それに先行するイベントにも依存する点にあります。ステートチャートを使用すれば、この情報を簡単に表現することができます。

Qt State Machine フレームワークは、ステートチャートの要素や意味論を Qt アプリケーションに効果的に組み込むために使用できる API と実行モデルを提供します。 このフレームワークは Qt のメタオブジェクトシステムと緊密に統合されています。例えば、状態間の遷移はシグナルによってトリガーすることができ、状態を構成して {QObject} のプロパティを設定したり、メソッドを呼び出したりすることも可能です。Qt のイベントシステムは、ステートマシンを駆動するために使用されます。

ステートマシンフレームワークのステートグラフは階層構造になっています。ステートは他のステート内にネストすることができ、ステートマシンの現在の構成は、現在アクティブなステートの集合で構成されます。ステートマシンの有効な構成に含まれるすべてのステートは、共通の祖先を持ちます。

『 Qt State Machine C++ ガイド』、Qt State Machine 『QML ガイド』、およびQt SCXML 『概要』も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.