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 フレームワークの一部です。
親状態にまだ入ったことがない場合に、入るべき状態を設定するには、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) |
Notifierシグナル:
| void | defaultStateChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発火させることはできません。
[bindable] defaultTransition : QAbstractTransition*
注:この プロパティは、QProperty のバインディングに対応しています。
このプロパティには、この履歴状態のデフォルトの遷移が格納されます。
アクセス関数:
| QAbstractTransition * | defaultTransition() const |
| void | setDefaultTransition(QAbstractTransition *transition) |
通知シグナル:
| void | defaultTransitionChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発行することはできません。
[bindable] historyType : HistoryType
注:この プロパティは、QProperty のバインディングに対応しています。
このプロパティは、この履歴状態が記録する履歴のタイプを保持します。
このプロパティのデフォルト値は `QHistoryState::ShallowHistory` です。
アクセス関数:
| QHistoryState::HistoryType | historyType() const |
| void | setHistoryType(QHistoryState::HistoryType type) |
通知シグナル:
| void | historyTypeChanged() | [see note below] |
注:これは プライベートシグナルです。シグナル接続では使用できますが、ユーザーが発行することはできません。
メンバ関数のドキュメント
QHistoryState::QHistoryState(QState *parent = nullptr)
指定されたparent の状態を使用して、新しい浅い履歴状態を作成します。
QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
指定されたtype の新しい履歴状態を、指定されたparent の状態を用いて構築します。
[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()も参照してください 。
© 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.