このページでは

ScxmlStateMachine QML Type

SCXML ファイルから作成されたステートマシンへのインターフェイスを提供します。詳細...

Import Statement: import QtScxml 6.11
In C++: QScxmlStateMachine

プロパティ

信号

方法

詳細な説明

ScxmlStateMachine 型はステートチャート XML (SCXML) の実装です。

SCXML ファイルで定義されているすべての状態は、この型のプロパティとしてアクセス可能です。これらのプロパティはブール値で、状態がアクティブか非アクティブかを示します。

プロパティの説明

dataModel : ScxmlDataModel

このステートマシンで使用するデータモデル。

SCXML のデータモデルについてはSCXML Specification - 5 Data Model and Data Manipulation を参照してください。サポートされるデータモデルの詳細についてはSCXML Compliance を参照してください。

ステートマシンがinitialized になっているときにデータモデルを変更することは SCXML 標準では規定されておらず、未定義の動作につながります。

QScxmlDataModelQScxmlNullDataModelQScxmlCppDataModelも参照して ください。

initialValues : var

データモデルの設定に使用する初期値。

initialized : bool [read-only]

この読み取り専用プロパティは、ステートマシンが初期化されている場合はtrue に設定され、そうでない場合はfalse に設定される。

invoked : bool [read-only]

ステートマシンが外部のステートマシンから起動されたかどうか。

この読み取り専用プロパティは、ステートマシンが<invoke> 要素を持つサービスとして開始された場合はtrue に設定され、そうでない場合はfalse に設定される。

invokedServices : list [read-only]

メインステートマシンから呼び出されたSCXMLサービスのリスト(再帰的に呼び出されることもある)。

loader : Loader

ステートマシンのURIを解決してロードするために現在使用されているローダー。

name : string [read-only]

<scxml> タグのname属性で設定されたステートマシンの名前。

parseErrors : var [read-only]

SCXML ファイルからステートマシンを作成する際に発生した解析エラーのリスト。

running : bool

このステートマシンの実行状態。

sessionId : string [read-only]

現在のステートマシンのセッションID。

セッションIDは、親と子のステートマシン間のメッセージルーティングに使用される。ステートマシンが<invoke> 要素によって開始される場合、それが送信するすべてのイベントは、invokeid フィールドにセッション ID が設定される。ステートマシンは、正しい子ステートマシンにメッセージをディスパッチするために、イベントのオリジン(<send> 要素のtargetまたはtargetexpr属性によって設定される)を使用する。

シグナル・ドキュメント

finished()

このシグナルは、ステートマシンがトップレベルの最終ステートに達したときに発せられる。

対応するシグナルハンドラはonFinished() である。

注: 対応するハンドラはonFinished

log(string label, string msg)

<log> label は タグの<log> label属性の値です。 は タグのmsg <log> expr属性の値です。expr属性がない場合は、NULL文字列が返されます。

対応するシグナル・ハンドラはonLog() です。

注: 対応するハンドラはonLog です。

reachedStableState()

このシグナルは、マクロステップの終了時にイベントキューが空になったとき、または最終ステートに到達したときに発せられる。

対応するシグナルハンドラはonreachedStableState()

注: 対応するハンドラはonReachedStableState

メソッドのドキュメント

list<string> activeStateNames(bool compress)

すべてのアクティブな状態の状態名のリストを取得する。

ある状態がアクティブであるとき、その親状態は定義上すべてアクティブである。compresstrue (デフォルト) の場合、親状態はフィルタリングされ、リーフ状態のみが返されます。false の場合、アクティブな状態の完全なリストが返される。

void cancelDelayedEvent(string sendId)

指定されたsendId の遅延イベントをキャンセルする。

bool init()

<data> 要素の初期値を設定し、<scxml> タグの<script> タグを実行することで、ステートマシンを初期化する。初期データ値はinitialValues プロパティから取得される。

解析エラーが発生した場合、または初期化ステップのいずれかが失敗した場合は、false を返します。それ以外の場合はtrue を返します。

bool isActive(string scxmlStateName)

scxmlStateName で指定された状態がアクティブであればtrue を、そうでなければfalse を返す。

bool isDispatchableTarget(string target)

このステートマシンがtarget へのメッセージをディスパッチできる場合、true を返す。

有効なターゲットは以下の通り:

  • #_parent によって現在のステートマシンが開始される場合、親ステートマシン。<invoke>
  • #_internal 現在のステートマシン
  • #_scxml_sessionid sessionid は、現在のステートマシンのセッションIDである。
  • #_servicename servicename は、このステートマシンが で開始したサービスのIDまたは名前である。<invoke>

void start()

このステートマシンを起動する。マシンは構成をリセットし、初期状態に遷移する。最終的なトップレベル状態に入ると、マシンはfinished() シグナルを発する。

stop() およびfinished()も参照

list<string> stateNames(bool compress)

すべての状態の状態名のリストを取得する。

compresstrue (デフォルト) の場合、子状態を含む状態はフィルタリングされ、リーフ状態のみが返される。false の場合、すべての状態の完全なリストが返される。

返されるリストには、入れ子になったステートマシンの状態は含まれません。

注意: リスト内の状態名の順序は、SCXMLドキュメント内で状態が発生した順序です。

void stop()

このステートマシンを停止する。マシンはそれ以上の状態遷移を実行しない。そのrunning プロパティはfalse に設定される。

start() およびfinished()も参照してください

void submitEvent(event)

イベントの優先順位に応じて、SCXML イベントevent を内部または外部のイベントキューに投入します。

遅延が設定されている場合、イベントはタイムアウトが経過した後に配送のためにキューに入れられます。ステートマシンはイベントの所有権を持ち、処理後に削除します。

QScxmlEventも参照のこと

void submitEvent(string eventName, var data)

指定されたeventName を名前として、data をペイロードデータ(オプション)として、外部イベントを作成し、サブミットするユーティリティメソッド。

© 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.