Auf dieser Seite

QHistoryState Class

Die Klasse „QHistoryState“ bietet die Möglichkeit, zu einem zuvor aktiven Unterzustand zurückzukehren. Mehr...

Header: #include <QHistoryState>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
Erbt von: QAbstractState

Öffentliche Typen

enum HistoryType { ShallowHistory, DeepHistory }

Eigenschaften

Ö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

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *e) override
virtual void onEntry(QEvent *event) override
virtual void onExit(QEvent *event) override

Ausführliche Beschreibung

Ein Verlaufszustand ist ein Pseudozustand, der den Unterzustand repräsentiert, in dem sich der übergeordnete Zustand beim letzten Verlassen des übergeordneten Zustands befand. Ein Übergang, dessen Ziel ein Verlaufszustand ist, ist tatsächlich ein Übergang zu einem oder mehreren anderen Unterzuständen des übergeordneten Zustands. QHistoryState ist Teil des „Qt State Machine “-Frameworks.

Verwenden Sie die Funktion ` setDefaultState()` um den Zustand festzulegen, in den gewechselt werden soll, wenn der übergeordnete Zustand noch nie betreten 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 soll oder wenn der Übergang zu dem/den Standardzustand(en) ausgelöst werden soll, sollte stattdessen ` defaultTransition ` festgelegt werden. Beachten Sie, dass die Methode `eventTest()` dieses Übergangs niemals aufgerufen wird: Die Auswahl und Ausführung des Übergangs erfolgt automatisch beim Betreten des Verlaufszustands.

Standardmäßig ist ein Verlaufszustand flach, was bedeutet, dass er sich keine verschachtelten Zustände merkt. Dies kann über die Eigenschaft „ historyType “ konfiguriert werden.

Dokumentation zu Mitgliedstypen

enum QHistoryState::HistoryType

Diese Enumeration legt fest, welche Art von Verlauf ein „ QHistoryState “ aufzeichnet.

KonstanteWertBeschreibung
QHistoryState::ShallowHistory0Es werden nur die unmittelbaren Nachfolgestände des übergeordneten Zustands aufgezeichnet. In diesem Fall führt ein Übergang, dessen Ziel der Verlaufszustand ist, zu dem unmittelbaren Nachfolgestand, in dem sich der übergeordnete Zustand beim letzten Verlassen befand. Dies ist die Standardeinstellung.
QHistoryState::DeepHistory1Verschachtelte Zustände werden aufgezeichnet. In diesem Fall führt ein Übergang, dessen Ziel der Verlaufszustand ist, zu dem am tiefsten verschachtelten Nachkommezustand, in dem sich der übergeordnete Zustand beim letzten Verlassen befand.

Eigenschaftsdokumentation

defaultState : QAbstractState*

Diese Eigenschaft enthält den Standardzustand dieses Verlaufszustands

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, darf jedoch nicht vom Benutzer ausgelöst werden.

[bindable] defaultTransition : QAbstractTransition*

Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.

Diese Eigenschaft enthält den Standardübergang dieses Verlaufszustands

Zugriffsfunktionen:

QAbstractTransition *defaultTransition() const
void setDefaultTransition(QAbstractTransition *transition)

Notifier-Signal:

void defaultTransitionChanged()[see note below]

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, darf jedoch nicht vom Benutzer ausgelöst werden.

[bindable] historyType : HistoryType

Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.

Diese Eigenschaft gibt den Typ des Verlaufs an, den dieser Verlaufszustand aufzeichnet

Der Standardwert dieser Eigenschaft ist „ QHistoryState::ShallowHistory “.

Zugriffsfunktionen:

QHistoryState::HistoryType historyType() const
void setHistoryType(QHistoryState::HistoryType type)

Notifier-Signal:

void historyTypeChanged()[see note below]

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Dokumentation der Member-Funktionen

QHistoryState::QHistoryState(QState *parent = nullptr)

Erstellt einen neuen „Shallow History“-Zustand auf der Grundlage des angegebenen „ parent “-Zustands.

QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)

Erstellt einen neuen Verlaufszustand für die angegebene „ type “ mit dem angegebenen „ parent “-Zustand.

[virtual noexcept] QHistoryState::~QHistoryState()

Löscht diesen Verlaufszustand.

QAbstractState *QHistoryState::defaultState() const

Gibt den Standardzustand dieses Verlaufszustands zurück. Der Standardzustand gibt den Zustand an, in den der Übergang erfolgen soll, wenn der übergeordnete Zustand zuvor noch nie aufgerufen wurde.

Hinweis: Getter- Funktion für die Eigenschaft `defaultState`.

Siehe auch „ setDefaultState()“.

[private signal] void QHistoryState::defaultStateChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ defaultState “ geändert wird.

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Hinweis: Notifier -Signal für die Eigenschaft „ defaultState “.

Siehe auch „ QHistoryState::defaultState “.

QAbstractTransition *QHistoryState::defaultTransition() const

Gibt den Standardübergang dieses Verlaufszustands zurück. Der Standardübergang wird angewendet, wenn der Verlaufszustand noch nie zuvor aufgerufen wurde. Die Zielzustände des Standardübergangs bilden daher den Standardzustand.

Hinweis: Getter -Funktion für die Eigenschaft `defaultTransition`.

Siehe auch „ setDefaultTransition()“.

[private signal] void QHistoryState::defaultTransitionChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ defaultTransition “ geändert wird.

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Hinweis: Notifier -Signal für die Eigenschaft „ defaultTransition “.

Siehe auch „ QHistoryState::defaultTransition “.

[override virtual protected] bool QHistoryState::event(QEvent *e)

Implementiert: ` QAbstractState::event(QEvent *e)`.

QHistoryState::HistoryType QHistoryState::historyType() const

Gibt den Typ des Verlaufs zurück, den dieser Verlaufszustand aufzeichnet.

Hinweis: Getter -Funktion für die Eigenschaft „historyType“.

Siehe auch „ setHistoryType()“.

[private signal] void QHistoryState::historyTypeChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ historyType “ geändert wird.

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Hinweis: Notifier -Signal für die Eigenschaft „ historyType “.

Siehe auch „ QHistoryState::historyType “.

[override virtual protected] void QHistoryState::onEntry(QEvent *event)

Umsetzt: QAbstractState::onEntry(QEvent *event).

[override virtual protected] void QHistoryState::onExit(QEvent *event)

Umsetzt: ` QAbstractState::onExit(QEvent *event)`.

void QHistoryState::setDefaultState(QAbstractState *state)

Legt den Standardzustand dieses Verlaufszustands auf den angegebenen Zustand „ state “ fest. „ state “ muss ein gleichrangiger Zustand dieses Verlaufszustands sein.

Beachten Sie, dass diese Funktion „ state “ nicht als Anfangszustand des übergeordneten Elements festlegt.

Hinweis: Setter -Funktion für die Eigenschaft „ defaultState “.

Siehe auch defaultState().

void QHistoryState::setDefaultTransition(QAbstractTransition *transition)

Legt den Standardübergang dieses Verlaufszustands auf den angegebenen „ transition “ fest. Dadurch wird der Quellzustand des „ transition “ auf den Verlaufszustand gesetzt.

Beachten Sie, dass die Methode „eventTest“ des „ transition “ niemals aufgerufen wird.

Hinweis: Setter -Funktion für die Eigenschaft ` defaultTransition`.

Siehe auch defaultTransition().

void QHistoryState::setHistoryType(QHistoryState::HistoryType type)

Legt die „ type “ des Verlaufs fest, die dieser Verlaufszustand aufzeichnet.

Hinweis: Setter -Funktion für die Eigenschaft „ historyType “.

Siehe auch ` 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.