QHistoryState Class
QHistoryStateクラスは、以前にアクティブだったサブステートに戻る手段を提供します。詳細...
Header: | #include <QHistoryState> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
Inherits: | 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
この履歴状態が記録する履歴のタイプを返します。
注 : property 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()も参照して ください。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。