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
- 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 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 `.
| Constante | Valeur | Description |
|---|---|---|
QHistoryState::ShallowHistory | 0 | Seuls 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::DeepHistory | 1 | Les é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.