StateMachine QML Type
階層的有限状態機械を提供する。詳細...
Import Statement: | import QtQml.StateMachine 6.8 |
Inherits: |
プロパティ
- errorString : string
- globalRestorePolicy : enumeration
- running : bool
信号
方法
詳細説明
StateMachineはStatechartsの概念と記法に基づいている。StateMachine はQt State Machine QML API の一部です。
ステートマシンは状態の集合と状態間の遷移を管理する。ステートグラフが構築されると、ステートマシンはそれを実行することができます。StateMachineの実行アルゴリズムは、State Chart XML(SCXML)アルゴリズムに基づいている。フレームワークの概要には、いくつかのステート・グラフと、それらを構築するためのコードが示されている。
マシンを起動する前に、initialState 。初期状態は、起動時にマシンが入る状態である。その後、runningプロパティをtrueに設定するか、start ()ステートマシンを設定することができる。初期状態に入ると、startedシグナルが発せられる。
ステートマシンは、イベントを処理し、トップレベルの最終状態になるまで遷移を行います。ステートマシンを明示的にstop() することもできます(running プロパティを false に設定することもできます)。この場合、stoppedシグナルが発信されます。
使用例
次のスニペットは、ボタンがクリックされると終了するステートマシンを示しています:
import QtQuick import QtQml.StateMachine as DSM Rectangle { Button { anchors.fill: parent id: button text: "Finish state" DSM.StateMachine { id: stateMachine initialState: state running: true DSM.State { id: state DSM.SignalTransition { targetState: finalState signal: button.clicked } } DSM.FinalState { id: finalState } onFinished: Qt.quit() } } }
エラーが発生すると、マシンはerrorState を探し、利用可能なものがあれば、この状態に入る。エラー状態に入ると、error()でエラーのタイプを取得できる。エラー状態に入っても、ステート・グラフの実行は停止しない。エラー状態に該当するものがない場合、マシンの実行は停止し、エラー・メッセージがコンソールに出力される。
警告 StateMachineのchildModeをQState::ExclusiveStates 以外に設定すると、無効なステートマシンになり、不正な動作につながる可能性があります。
QAbstractState,State,SignalTransition,TimeoutTransition,HistoryState,Qt State Machine QMLガイドも参照してください 。
プロパティ ドキュメント
errorString : string |
このステートマシンのエラー文字列。
globalRestorePolicy : enumeration |
このステートマシンの状態のリストアポリシー。
このプロパティのデフォルト値はQState.DontRestoreProperties です。
この列挙型は、リストアポリシーのタイプを指定します。リストアポリシーは、マシンが1つ以上のプロパティを設定する状態に入ると有効になる。リストアポリシーがQState.RestorePropertiesに設定されている場合、ステートマシンは、新しい値が設定される前に、プロパティの元の値を保存する。
その後、マシンが指定されたプロパティの値を設定しない状態に入ると、プロパティは自動的に初期値に復元される。
与えられたプロパティに対して保存される初期値は1つだけである。プロパティに対する値がステートマシンによって既に保存されている場合、プロパティが正常に復元されるまで、その値は上書きされません。
シグナル・ドキュメント
started() |
このシグナルは、ステートマシンが初期状態 (State::initialState) になったときに発せられる。
注: 対応するハンドラはonStarted
。
running 、start()、State::finishedも参照 。
stopped() |
メソッド・ドキュメント
start() |
このステートマシンを開始する。マシンは構成をリセットし、初期状態に遷移する。最終的なトップレベル状態(FinalState)に入ると、マシンはfinished() シグナルを発する。
注: QCoreApplication::exec() やQApplication::exec() で開始されるメイン・アプリケーション・イベント・ループなど、実行中のイ ベント・ループがないと、ステート・マシンは実行されません。
started 、State::finished 、stop()、State::initialState 、runningも参照してください 。
© 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.