ScxmlStateMachine QML Type

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

Import Statement: import QtScxml 6.8
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


メソッド ドキュメント

activeStateNames(bool compress)

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

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


cancelDelayedEvent(string sendId)

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


init()

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

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


isActive(string scxmlStateName)

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


isDispatchableTarget(string target)

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

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

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

start()

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

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


stateNames(bool compress)

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

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

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

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


stop()

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

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


submitEvent(event)

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

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

QScxmlEventも参照してください


submitEvent(string eventName, var data)

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


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