QHistoryState Class
Die Klasse QHistoryState bietet die Möglichkeit, zu einem zuvor aktiven Teilzustand zurückzukehren. Mehr...
Kopfzeile: | #include <QHistoryState> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
Vererbungen: | QAbstractState |
Öffentliche Typen
enum | HistoryType { ShallowHistory, DeepHistory } |
Eigenschaften
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
Öffentliche Funktionen
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) |
Signale
void | defaultStateChanged() |
void | defaultTransitionChanged() |
void | historyTypeChanged() |
Reimplementierte geschützte Funktionen
virtual bool | event(QEvent *e) override |
virtual void | onEntry(QEvent *event) override |
virtual void | onExit(QEvent *event) override |
Detaillierte Beschreibung
Ein History-Zustand ist ein Pseudo-Zustand, der den Child-Zustand darstellt, in dem sich der Parent-Zustand beim letzten Verlassen des Parent-Zustands befand. Ein Übergang mit einem History-State als Ziel ist in Wirklichkeit ein Übergang zu einem oder mehreren anderen Child-States des Parent-States. QHistoryState ist Teil des Qt State Machine Frameworks.
Verwenden Sie die Funktion setDefaultState(), um den Zustand festzulegen, der erreicht werden soll, wenn der übergeordnete Zustand noch nie erreicht wurde. Beispiel:
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);
Wenn mehr als ein Standardzustand betreten werden muss oder wenn auf den Übergang in den/die Standardzustand(e) reagiert werden muss, sollte stattdessen die defaultTransition gesetzt werden. Beachten Sie, dass die eventTest()-Methode dieses Übergangs nie aufgerufen wird: die Auswahl und Ausführung des Übergangs erfolgt automatisch beim Eintritt in den History-Status.
Standardmäßig ist ein History-Zustand oberflächlich, was bedeutet, dass er sich keine verschachtelten Zustände merkt. Dies kann über die Eigenschaft historyType konfiguriert werden.
Dokumentation der Mitgliedstypen
enum QHistoryState::HistoryType
Diese Aufzählung gibt die Art der Historie an, die ein QHistoryState aufzeichnet.
Konstante | Wert | Beschreibung |
---|---|---|
QHistoryState::ShallowHistory | 0 | Nur die unmittelbaren Kindzustände des Elternzustandes werden aufgezeichnet. In diesem Fall wird ein Übergang mit dem History-Zustand als Ziel in dem unmittelbaren Child-Zustand enden, in dem sich der Parent-Zustand beim letzten Verlassen befand. Dies ist die Standardeinstellung. |
QHistoryState::DeepHistory | 1 | Verschachtelte Zustände werden aufgezeichnet. In diesem Fall endet ein Übergang mit dem History-Zustand als Ziel in dem am tiefsten verschachtelten Nachfolgezustand, in dem sich der Parent-Zustand beim letzten Verlassen befand. |
Dokumentation der Eigenschaft
defaultState : QAbstractState*
Diese Eigenschaft enthält den Standardstatus dieses Verlaufsstatus
Zugriffsfunktionen:
QAbstractState * | defaultState() const |
void | setDefaultState(QAbstractState *state) |
Benachrichtigungssignal:
void | defaultStateChanged() | [see note below] |
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, aber nicht vom Benutzer ausgesendet werden.
[bindable]
defaultTransition : QAbstractTransition*
Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.
Diese Eigenschaft enthält den Standardübergang dieses Geschichtszustands
[bindable]
historyType : HistoryType
Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.
Diese Eigenschaft enthält den Typ des Verlaufs, den dieser Verlaufsstatus aufzeichnet
Der Standardwert für diese Eigenschaft ist QHistoryState::ShallowHistory.
Dokumentation der Mitgliedsfunktionen
QHistoryState::QHistoryState(QState *parent = nullptr)
Konstruiert einen neuen flachen Geschichtszustand mit dem angegebenen parent Zustand.
QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
Konstruiert einen neuen Geschichtszustand mit dem angegebenen type, mit dem angegebenen parent Zustand.
[virtual noexcept]
QHistoryState::~QHistoryState()
Zerstört diesen Geschichtszustand.
QAbstractState *QHistoryState::defaultState() const
Gibt den Standardzustand dieses Verlaufszustands zurück. Der Standardzustand gibt an, in welchen Zustand übergegangen werden soll, wenn der übergeordnete Zustand noch nie betreten wurde.
Hinweis: Getter-Funktion für die Eigenschaft defaultState.
Siehe auch setDefaultState().
[private signal]
void QHistoryState::defaultStateChanged()
Dieses Signal wird ausgesendet, wenn die Eigenschaft defaultState geändert wird.
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann aber nicht vom Benutzer ausgegeben werden.
Hinweis: Benachrichtigungssignal für die Eigenschaft defaultState.
Siehe auch QHistoryState::defaultState.
QAbstractTransition *QHistoryState::defaultTransition() const
Gibt den Standardübergang für diesen Verlaufszustand zurück. Der Standardübergang wird genommen, wenn der Verlaufszustand noch nie betreten wurde. Die Zielzustände des Standardübergangs bilden also den Standardzustand.
Hinweis: Getter-Funktion für die Eigenschaft defaultTransition.
Siehe auch setDefaultTransition().
[private signal]
void QHistoryState::defaultTransitionChanged()
Dieses Signal wird ausgesendet, wenn die Eigenschaft defaultTransition geändert wird.
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann aber nicht vom Benutzer ausgegeben werden.
Hinweis: Benachrichtigungssignal für die Eigenschaft defaultTransition.
Siehe auch QHistoryState::defaultTransition.
[override virtual protected]
bool QHistoryState::event(QEvent *e)
Reimplements: QAbstractState::event(QEvent *e).
QHistoryState::HistoryType QHistoryState::historyType() const
Gibt den Typ der Geschichte zurück, die dieser Geschichtszustand aufzeichnet.
Hinweis: Getter-Funktion für die Eigenschaft historyType.
Siehe auch setHistoryType().
[private signal]
void QHistoryState::historyTypeChanged()
Dieses Signal wird ausgesendet, wenn die Eigenschaft historyType geändert wird.
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann aber nicht vom Benutzer ausgegeben werden.
Hinweis: Benachrichtigungssignal für die Eigenschaft historyType.
Siehe auch QHistoryState::historyType.
[override virtual protected]
void QHistoryState::onEntry(QEvent *event)
Reimplements: QAbstractState::onEntry(QEvent *Event).
[override virtual protected]
void QHistoryState::onExit(QEvent *event)
Reimplements: QAbstractState::onExit(QEvent *Event).
void QHistoryState::setDefaultState(QAbstractState *state)
Setzt den Standardzustand dieses Verlaufszustands auf den angegebenen state. state muss ein Geschwisterzustand dieses Verlaufszustands sein.
Beachten Sie, dass diese Funktion nicht state als Anfangszustand des Elternteils setzt.
Hinweis: Setter-Funktion für die Eigenschaft defaultState.
Siehe auch defaultState().
void QHistoryState::setDefaultTransition(QAbstractTransition *transition)
Setzt den Standardübergang dieses Geschichtszustands auf den angegebenen transition. Dadurch wird der Quellzustand von transition auf den History-Zustand gesetzt.
Beachten Sie, dass die eventTest-Methode von transition nie aufgerufen wird.
Hinweis: Setter-Funktion für die Eigenschaft defaultTransition.
Siehe auch defaultTransition().
void QHistoryState::setHistoryType(QHistoryState::HistoryType type)
Legt die type der Geschichte fest, die dieser Geschichtszustand aufzeichnet.
Hinweis: Setter-Funktion für die Eigenschaft historyType.
Siehe auch 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.