QHistoryState Class
QHistoryStateクラスは、以前にアクティブだったサブステートに戻る手段を提供します。詳細...
ヘッダー | #include <QHistoryState> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
継承: | QAbstractState |
パブリックな型
enum | HistoryType { ShallowHistory, DeepHistory } |
プロパティ
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
パブリック機能
QHistoryState(QState *parent = nullptr) | |
QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr) | |
virtual | ~QHistoryState() |
QBindable<QAbstractTransition *> | bindableDefaultTransition() |
QBindable<QHistoryState::HistoryType> | bindableHistoryType() |
QAbstractState * | defaultState() const |
QAbstractTransition * | defaultTransition() const |
QHistoryState::HistoryType | historyType() const |
void | setDefaultState(QAbstractState *state) |
void | setDefaultTransition(QAbstractTransition *transition) |
void | setHistoryType(QHistoryState::HistoryType type) |
シグナル
void | defaultStateChanged() |
void | defaultTransitionChanged() |
void | historyTypeChanged() |
再実装された保護された関数
virtual bool | event(QEvent *e) override |
virtual void | onEntry(QEvent *event) override |
virtual void | onExit(QEvent *event) override |
詳細説明
ヒストリ状態とは、親状態が最後に終了したときに親状態が持っていた子状態を表す擬似状態である。ヒストリ状態をターゲットとする遷移は、実際には、親状態の 1 つ以上の他の子状態への遷移である。QHistoryState はQt State Machine Framework の一部です。
親状態に一度も入ったことがない場合に入るべき状態を設定するには、setDefaultState ()関数を使用します。例
QStateMachine machine; QState *s1 = new QState(); QState *s11 = new QState(s1); QState *s12 = new QState(s1); QHistoryState *s1h = new QHistoryState(s1); s1h->setDefaultState(s11); machine.addState(s1); QState *s2 = new QState(); machine.addState(s2); QPushButton *button = new QPushButton(); // Clicking the button will cause the state machine to enter the child state // that s1 was in the last time s1 was exited, or the history state's default // state if s1 has never been entered. s1->addTransition(button, SIGNAL(clicked()), s1h);
例:複数のデフォルト状態に入る必要がある場合、またはデフォルト状態への遷移を処理する必要がある場合は、代わりにdefaultTransition を設定する必要があります。その遷移のeventTest()メソッドが呼び出されることはないことに注意。遷移の選択と実行は、履歴状態に入るときに自動的に行われる。
デフォルトでは、ヒストリー・ステートは浅い。つまり、ネストしたステートを記憶しない。これはhistoryType プロパティで設定できる。
メンバ型ドキュメント
enum QHistoryState::HistoryType
この列挙型は、QHistoryState が記録する履歴のタイプを指定する。
定数 | 値 | 説明 |
---|---|---|
QHistoryState::ShallowHistory | 0 | 親状態の直前の子状態のみが記録される。この場合、履歴状態をターゲットとする遷移は、親状態が最後に終了したときの直前の子状態で終了します。これがデフォルトである。 |
QHistoryState::DeepHistory | 1 | 入れ子の状態は記録されます。この場合、履歴状態をターゲットとするトランジションは、最後に終了したときに親がいた、最も深くネストされた子孫状態に行き着きます。 |
プロパティの説明
defaultState : QAbstractState*
このプロパティは、この履歴状態のデフォルト状態を保持する。
アクセス関数:
QAbstractState * | defaultState() const |
void | setDefaultState(QAbstractState *state) |
通知シグナル:
void | defaultStateChanged() | [see note below] |
注意: これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
[bindable]
defaultTransition : QAbstractTransition*
注: このプロパティはQProperty バインディングに対応しています。
このプロパティは、この履歴状態のデフォルトの遷移を保持します。
[bindable]
historyType : HistoryType
注意: このプロパティはQProperty バインディングに対応しています。
このプロパティは、この履歴状態が記録する履歴のタイプを保持します。
このプロパティのデフォルト値はQHistoryState::ShallowHistory である。
メンバ関数ドキュメント
QHistoryState::QHistoryState(QState *parent = nullptr)
与えられたparent 状態で新しい浅い履歴状態を構築する。
QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
与えられたparent の状態で、与えられたtype の新しい履歴状態を構築する。
[virtual noexcept]
QHistoryState::~QHistoryState()
このヒストリー状態を破壊する。
QAbstractState *QHistoryState::defaultState() const
このヒストリ状態のデフォルト状態を返します。デフォルト状態は、親状態が一度も入力されたことがない場合に遷移する状態を示します。
注: defaultState プロパティのゲッター関数です。
setDefaultState()も参照してください 。
[private signal]
void QHistoryState::defaultStateChanged()
このシグナルは、defaultState プロパティが変更されたときに発行される。
注意: これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: defaultState プロパティのノーティファイアシグナル。
QHistoryState::defaultStateも参照のこと 。
QAbstractTransition *QHistoryState::defaultTransition() const
このヒストリ状態のデフォルトの遷移を返します。デフォルトの遷移は、ヒストリ状態が一度も入力されたことがない場合に行われます。したがって、デフォルト遷移のターゲット状態がデフォルト状態を構成します。
注: defaultTransitionプロパティのゲッター関数です。
setDefaultTransition()も参照してください 。
[private signal]
void QHistoryState::defaultTransitionChanged()
このシグナルは、defaultTransition プロパティが変更されたときに発行される。
注意: これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: defaultTransition プロパティのノーティファイアシグナル。
QHistoryState::defaultTransitionも参照のこと 。
[override virtual protected]
bool QHistoryState::event(QEvent *e)
再インプリメント:QAbstractState::event(QEvent *e).
QHistoryState::HistoryType QHistoryState::historyType() const
この履歴状態が記録する履歴のタイプを返す。
注: プロパティ historyType のゲッター関数。
setHistoryType()も参照 。
[private signal]
void QHistoryState::historyTypeChanged()
このシグナルは、historyType プロパティが変更されたときに発行される。
注意: これはプライベートシグナルです。シグナル接続で使用することはできますが、ユーザーが発することはできません。
注: historyType プロパティのノーティファイアシグナル。
QHistoryState::historyTypeも参照 。
[override virtual protected]
void QHistoryState::onEntry(QEvent *event)
再実装:QAbstractState::onEntry(QEvent *event)。
[override virtual protected]
void QHistoryState::onExit(QEvent *event)
再実装:QAbstractState::onExit(QEvent *event)。
void QHistoryState::setDefaultState(QAbstractState *state)
この履歴状態のデフォルト状態を、与えられたstate に設定する。state は、この履歴状態の兄弟でなければならない。
この関数は、state を親の初期状態には設定しないことに注意。
注: プロパティdefaultState のセッター関数です。
defaultState()も参照 。
void QHistoryState::setDefaultTransition(QAbstractTransition *transition)
この履歴状態のデフォルトの遷移を、与えられたtransition に設定する。これにより、transition のソース・ステートがヒストリ・ステートに設定される。
transition の eventTest メソッドは決して呼び出されないことに注意。
注: プロパティdefaultTransition のセッター関数です。
defaultTransition()も参照してください 。
void QHistoryState::setHistoryType(QHistoryState::HistoryType type)
この履歴状態が記録する履歴のtype を設定する。
注: プロパティhistoryType のセッター関数です。
historyType()も参照してください 。
© 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.