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
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
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
| void | defaultStateChanged() |
| void | defaultTransitionChanged() |
| void | historyTypeChanged() |
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.
| Constante | Valeur | Description |
|---|---|---|
QHistoryState::ShallowHistory | 0 | Seuls 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::DeepHistory | 1 | Les é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.