StateMachine QML Type

階層的有限状態機械を提供する。詳細...

Import Statement: import QtQml.StateMachine 6.8
Inherits:

State

プロパティ

シグナル

メソッド

詳細説明

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 [read-only]

このステートマシンのエラー文字列。


globalRestorePolicy : enumeration

このステートマシンの状態のリストアポリシー。

このプロパティのデフォルト値はQState.DontRestoreProperties です。

この列挙型は、リストアポリシーのタイプを指定します。リストアポリシーは、マシンが1つ以上のプロパティを設定する状態に入ると有効になる。リストアポリシーがQState.RestorePropertiesに設定されている場合、ステートマシンは、新しい値が設定される前に、プロパティの元の値を保存する。

その後、マシンが指定されたプロパティの値を設定しない状態に入ると、プロパティは自動的に初期値に復元される。

与えられたプロパティに対して保存される初期値は1つだけである。プロパティに対する値がステートマシンによって既に保存されている場合、プロパティが正常に復元されるまで、その値は上書きされません。

  • QState.DontRestoreProperties ステートマシンは、プロパティの初期値を保存し、後で復元してはならない。
  • QState.RestoreProperties ステートマシンは、プロパティの初期値を保存し、後で復元する必要があります。

running : bool

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

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


シグナル・ドキュメント

started()

このシグナルは、ステートマシンが初期状態 (State::initialState) になったときに発せられる。

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

runningstart()、State::finishedも参照


stopped()

このシグナルは、ステートマシンが停止したときに発せられる。

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

runningstop()、State::finishedも参照


メソッド・ドキュメント

start()

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

注: QCoreApplication::exec() やQApplication::exec() で開始されるメイン・アプリケーション・イベント・ループなど、実行中のイ ベント・ループがないと、ステート・マシンは実行されません。

startedState::finishedstop()、State::initialStaterunningも参照してください


stop()

このステート・マシンを停止します。ステートマシンはイベント処理を停止し、stoppedシグナルを発信します。

stoppedstart()、runningも参照して ください。


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