Sur cette page

QHistoryState Class

La classe QHistoryState permet de revenir à un sous-état précédemment actif. En savoir plus...

En-tête : #include <QHistoryState>
CMake : find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake : QT += statemachine
Hérite de : QAbstractState

Types publics

enum HistoryType { ShallowHistory, DeepHistory }

Propriétés

Fonctions publiques

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)

Signaux

Fonctions protégées réimplémentées

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

Description détaillée

Un état d'historique est un pseudo-état qui représente l'état enfant dans lequel se trouvait l'état parent lors de sa dernière sortie. Une transition dont la cible est un état d'historique correspond en réalité à une transition vers un ou plusieurs autres états enfants de l'état parent. QHistoryState fait partie du frameworkQt State Machine .

Utilisez la fonction setDefaultState() pour définir l’état dans lequel il faut entrer si l’état parent n’a jamais été atteint. Exemple :

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);

Si plusieurs états par défaut doivent être activés, ou si la transition vers le ou les états par défaut doit déclencher une action, il convient plutôt de définir la propriété ` defaultTransition `. Notez que la méthode `eventTest()` de cette transition ne sera jamais appelée : la sélection et l’exécution de la transition s’effectuent automatiquement lors de l’entrée dans l’état d’historique.

Par défaut, un état d’historique est « peu profond », ce qui signifie qu’il ne mémorise pas les états imbriqués. Ce comportement peut être configuré via la propriété historyType.

Documentation sur les types de membres

enum QHistoryState::HistoryType

Cette énumération spécifie le type d'historique enregistré par une instance de ` QHistoryState `.

ConstanteValeurDescription
QHistoryState::ShallowHistory0Seuls les états enfants immédiats de l’état parent sont enregistrés. Dans ce cas, une transition dont l’état d’historique est la cible aboutira à l’état enfant immédiat dans lequel se trouvait le parent lors de sa dernière sortie. Il s’agit de la valeur par défaut.
QHistoryState::DeepHistory1Les états imbriqués sont enregistrés. Dans ce cas, une transition dont la cible est l’état d’historique aboutira à l’état descendant le plus profondément imbriqué dans lequel se trouvait l’état parent lors de sa dernière sortie.

Documentation des propriétés

defaultState : QAbstractState*

Cette propriété contient l'état par défaut de cet état de l'historique

Fonctions d'accès :

QAbstractState *defaultState() const
void setDefaultState(QAbstractState *state)

Signal de notification :

void defaultStateChanged()[see note below]

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

[bindable] defaultTransition : QAbstractTransition*

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

Cette propriété contient la transition par défaut de cet état d'historique

Fonctions d'accès :

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

Signal de notification :

void defaultTransitionChanged()[see note below]

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans des connexions de signaux, mais ne peut pas être émis par l'utilisateur.

[bindable] historyType : HistoryType

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

Cette propriété contient le type d'historique enregistré par cet état d'historique

La valeur par défaut de cette propriété est « QHistoryState::ShallowHistory ».

Fonctions d'accès :

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

Signal de notification :

void historyTypeChanged()[see note below]

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

Documentation des fonctions membres

QHistoryState::QHistoryState(QState *parent = nullptr)

Crée un nouvel état d'historique superficiel à partir de l'état « parent » fourni.

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

Crée un nouvel état d'historique de l'type donné, avec l'état parent spécifié.

[virtual noexcept] QHistoryState::~QHistoryState()

Supprime cet état de l'historique.

QAbstractState *QHistoryState::defaultState() const

Renvoie l'état par défaut de cet état d'historique. L'état par défaut indique l'état vers lequel la transition doit s'effectuer si l'état parent n'a jamais été atteint auparavant.

Remarque : fonctiongetter pour la propriété defaultState.

Voir aussi setDefaultState().

[private signal] void QHistoryState::defaultStateChanged()

Ce signal est émis lorsque la propriété « defaultState » est modifiée.

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

Remarque : signalde notification pour la propriété ` defaultState`.

Voir aussi ` QHistoryState::defaultState`.

QAbstractTransition *QHistoryState::defaultTransition() const

Renvoie la transition par défaut de cet état d'historique. La transition par défaut est utilisée lorsque l'état d'historique n'a encore jamais été atteint. Les états cibles de la transition par défaut constituent donc l'état par défaut.

Remarque : fonctiongetter pour la propriété defaultTransition.

Voir aussi ` setDefaultTransition()`.

[private signal] void QHistoryState::defaultTransitionChanged()

Ce signal est émis lorsque la propriété defaultTransition est modifiée.

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

Remarque : signalde notification pour la propriété defaultTransition.

Voir également QHistoryState::defaultTransition.

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

Réimplémente : QAbstractState::event(QEvent *e).

QHistoryState::HistoryType QHistoryState::historyType() const

Renvoie le type d'historique enregistré par cet état d'historique.

Remarque : fonctiongetter pour la propriété historyType.

Voir aussi setHistoryType().

[private signal] void QHistoryState::historyTypeChanged()

Ce signal est émis lorsque la propriété « historyType » est modifiée.

Remarque : il s'agit d'un signal privé. Il peut être utilisé dans les connexions de signaux, mais ne peut pas être émis par l'utilisateur.

Remarque : signalde notification pour la propriété historyType.

Voir également QHistoryState::historyType.

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

Réimplémente : QAbstractState::onEntry(QEvent *event).

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

Réimplémente : QAbstractState::onExit(QEvent *event).

void QHistoryState::setDefaultState(QAbstractState *state)

Définit l'état par défaut de cet état d'historique sur l'state spécifié. L'state doit être un élément de même niveau que cet état d'historique.

Notez que cette fonction ne définit pas ` state ` comme état initial de son parent.

Remarque : fonctionde définition de la propriété defaultState.

Voir également defaultState().

void QHistoryState::setDefaultTransition(QAbstractTransition *transition)

Définit la transition par défaut de cet état de l'historique sur l'transition spécifiée. Cela définira l'état source de l'transition sur l'état de l'historique.

Notez que la méthode `eventTest` de l'transition ne sera jamais appelée.

Remarque : fonctionde définition pour la propriété ` defaultTransition`.

Voir également defaultTransition().

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

Définit l'type s de l'historique que cet état d'historique enregistre.

Remarque : fonctionde définition de la propriété historyType.

Voir aussi 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.