ScxmlStateMachine QML Type
SCXMLファイルから作成されたステートマシンへのインターフェースを提供します。詳細...
| Import Statement: | import QtScxml 6.12 |
| In C++: | QScxmlStateMachine |
プロパティ
- dataModel : ScxmlDataModel
- initialValues : var
- initialized : bool
- invoked : bool
- invokedServices : list
- loader : Loader
- name : string
- parseErrors : var
- running : bool
- sessionId : string
信号
- finished()
- log(string label, string msg)
- reachedStableState()
方法
- list<string> activeStateNames(bool compress)
- void cancelDelayedEvent(string sendId)
- bool init()
- bool isActive(string scxmlStateName)
- bool isDispatchableTarget(string target)
- void start()
- list<string> stateNames(bool compress)
- void stop()
- void submitEvent(event)
- void submitEvent(string eventName, var data)
詳細な説明
ScxmlStateMachine 型は、State Chart XML (SCXML) の実装です。
SCXML ファイルで定義されたすべての状態は、この型のプロパティとしてアクセス可能です。これらのプロパティはブール値であり、その状態がアクティブか非アクティブかを示します。
プロパティのドキュメント
dataModel : ScxmlDataModel
このステートマシンで使用するデータモデル。
SCXMLデータモデルについては、『SCXML仕様書 - 5 データモデルおよびデータ操作』に記載されています。サポートされているデータモデルの詳細については、「SCXML準拠」を参照してください。
ステートマシンがinitialized された後にデータモデルを変更することは、SCXML標準では規定されておらず、未定義の挙動を引き起こします。
「 QScxmlDataModel 」、「QScxmlNullDataModel 」、および「QScxmlCppDataModel 」も参照してください 。
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)
このシグナルは、SCXML内で<log> タグが使用された場合に発せられます。label は、<log> タグのlabel属性の値です。msg は、<log> タグのexpr属性の評価結果の値です。expr属性が存在しない場合は、空文字列が返されます。
対応するシグナルハンドラは、onLog() です。
注: 対応するハンドラは onLog です。
reachedStableState()
このシグナルは、マクロステップの終了時にイベントキューが空になった場合、または最終状態に達した場合に発せられます。
対応するシグナルハンドラはonreachedStableState() です。
注: 対応するハンドラは onReachedStableState です。
メソッドのドキュメント
list<string> activeStateNames(bool compress)
アクティブなすべての状態の名前の一覧を取得します。
状態がアクティブな場合、定義上、そのすべての親状態もアクティブとなります。compress がtrue (デフォルト)の場合、親状態は除外され、リーフ状態のみが返されます。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は、このステートマシンによって<invoke>で起動されたサービスの ID または名前です
void start()
このステートマシンを起動します。マシンは設定をリセットし、初期状態に移行します。最上位の最終状態に入ると、マシンはfinished()信号を出力します。
stop() およびfinished()も参照してください 。
list<string> stateNames(bool compress)
すべての州の州名のリストを取得します。
compress がtrue (デフォルト)の場合、子状態を含む状態は除外され、リーフ状態のみが返されます。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.