Sur cette page

QHistoryState Class

La classe QHistoryState permet de revenir à un état précédemment actif. Plus d'informations...

En-tête : #include <QHistoryState>
CMake : find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake : QT += statemachine
Héritages : 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 historique est un pseudo-état qui représente l'état enfant dans lequel se trouvait l'état parent la dernière fois qu'il a été quitté. Une transition ayant pour cible un état historique est en fait une transition vers un ou plusieurs autres états enfants de l'état parent. QHistoryState fait partie du cadreQt State Machine .

Utilisez la fonction setDefaultState() pour définir l'état qui doit être saisi si l'état parent n'a jamais été saisi. 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 entrés, ou si la transition vers le ou les états par défaut doit être prise en compte, la fonction defaultTransition doit être définie à la place. Notez que la méthode eventTest() de cette transition ne sera jamais appelée : la sélection et l'exécution de la transition se font automatiquement lors de l'entrée dans l'état historique.

Par défaut, un état d'historique est peu profond, ce qui signifie qu'il ne se souviendra pas des états imbriqués. Ceci 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 qu'un site QHistoryState enregistre.

ConstanteValeurDescription
QHistoryState::ShallowHistory0Seuls les états enfants immédiats de l'état parent sont enregistrés. Dans ce cas, une transition ayant pour cible l'état historique se retrouvera dans l'état enfant immédiat dans lequel se trouvait le parent la dernière fois qu'il a été quitté. Il s'agit de la valeur par défaut.
QHistoryState::DeepHistory1Les états imbriqués sont enregistrés. Dans ce cas, une transition ayant pour cible l'état historique aboutira à l'état descendant le plus profondément imbriqué dans lequel se trouvait le parent la dernière fois qu'il a été quitté.

Documentation sur les propriétés

defaultState : QAbstractState*

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

Fonctions d'accès :

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

Signal du notificateur :

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*

Note : Cette propriété supporte les liens QProperty.

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

Fonctions d'accès :

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

Signal Notifier :

void defaultTransitionChanged()[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] historyType : HistoryType

Note : Cette propriété supporte les liens QProperty.

Cette propriété indique le type d'historique que l'état de l'historique enregistre

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)

Notifier signal :

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)

Construit un nouvel état historique peu profond avec l'état parent donné.

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

Construit un nouvel état de l'historique de type donné, avec l'état de parent donné.

[virtual noexcept] QHistoryState::~QHistoryState()

Détruit l'état de l'historique.

QAbstractState *QHistoryState::defaultState() const

Renvoie l'état par défaut de cet état historique. L'état par défaut indique l'état vers lequel il faut passer si l'état parent n'a jamais été saisi auparavant.

Note : Fonction Getter pour la propriété defaultState.

Voir également 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.

Note : Signal de notification pour la propriété defaultState.

Voir aussi QHistoryState::defaultState.

QAbstractTransition *QHistoryState::defaultTransition() const

Renvoie la transition par défaut de cet état historique. La transition par défaut est prise lorsque l'état de l'historique n'a jamais été saisi auparavant. Les états cibles de la transition par défaut constituent donc l'état par défaut.

Note : Fonction Getter 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.

Note : Signal de notification pour la propriété defaultTransition.

Voir aussi 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 que cet état d'historique enregistre.

Note : Fonction Getter pour la propriété historyType.

Voir également 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.

Note : Signal de notification pour la propriété historyType.

Voir aussi 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 historique comme étant l'état donné state. state doit être un frère ou une sœur de cet état historique.

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

Note : Fonction de définition de la propriété defaultState.

Voir aussi defaultState().

void QHistoryState::setDefaultTransition(QAbstractTransition *transition)

Définit la transition par défaut de cet état historique comme étant la transition donnée transition. L'état source de transition sera ainsi défini comme l'état de l'historique.

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

Note : Fonction de définition de la propriété defaultTransition.

Voir aussi defaultTransition().

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

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

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

Voir également 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.