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 Guideも参照してください 。
プロパティ ドキュメント
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も参照してください 。
このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。