QState Class
La classe QState fournit un état général pour QStateMachine. Plus...
| En-tête : | #include <QState> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS StateMachine)target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake : | QT += statemachine |
| Hérite : | QAbstractState |
| Hérité par : |
Types publics
| enum | ChildMode { ExclusiveStates, ParallelStates } |
| enum | RestorePolicy { DontRestoreProperties, RestoreProperties } |
Propriétés
- childMode : ChildMode
- errorState : QAbstractState*
- initialState : QAbstractState*
Fonctions publiques
| QState(QState *parent = nullptr) | |
| QState(QState::ChildMode childMode, QState *parent = nullptr) | |
| virtual | ~QState() |
| QAbstractTransition * | addTransition(QAbstractState *target) |
| void | addTransition(QAbstractTransition *transition) |
| QSignalTransition * | addTransition(const QObject *sender, const char *signal, QAbstractState *target) |
| QSignalTransition * | addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target) |
| void | assignProperty(QObject *object, const char *name, const QVariant &value) |
| QBindable<QState::ChildMode> | bindableChildMode() |
| QBindable<QAbstractState *> | bindableErrorState() |
| QBindable<QAbstractState *> | bindableInitialState() |
| QState::ChildMode | childMode() const |
| QAbstractState * | errorState() const |
| QAbstractState * | initialState() const |
| void | removeTransition(QAbstractTransition *transition) |
| void | setChildMode(QState::ChildMode mode) |
| void | setErrorState(QAbstractState *state) |
| void | setInitialState(QAbstractState *state) |
| QList<QAbstractTransition *> | transitions() const |
Signaux
| void | childModeChanged() |
| void | errorStateChanged() |
| void | finished() |
| void | initialStateChanged() |
| void | propertiesAssigned() |
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
Les objets QState peuvent avoir des états enfants et des transitions vers d'autres états. QState fait partie du cadreQt State Machine .
La fonction addTransition() ajoute une transition. La fonction removeTransition() supprime une transition. La fonction transitions() renvoie les transitions sortantes de l'état.
La fonction assignProperty() est utilisée pour définir les affectations de propriétés qui doivent être effectuées lors de l'entrée dans un état.
Les états de premier niveau doivent recevoir un objet QStateMachine en tant qu'état parent, ou être ajoutés à une machine à états à l'aide de la fonction QStateMachine::addState().
États avec États enfants
La propriété childMode détermine la manière dont les états enfants sont traités. Pour les groupes d'états non parallèles, la fonction setInitialState() doit être appelée pour définir l'état initial. Les états enfants sont des états mutuellement exclusifs, et la machine à états doit savoir dans quel état enfant entrer lorsque l'état parent est la cible d'une transition.
L'état émet le signal QState::finished() lorsqu'un état enfant final (QFinalState) est entré.
Le signal setErrorState() définit l'état d'erreur de l'état. L'état d'erreur est l'état vers lequel la machine à états passe si une erreur est détectée lors d'une tentative d'entrée dans l'état (par exemple, parce qu'aucun état initial n'a été défini).
Documentation sur les types de membres
enum QState::ChildMode
Cette énumération spécifie comment sont traités les états enfants d'un état.
| Constante | Valeur | Description de l'état |
|---|---|---|
QState::ExclusiveStates | 0 | Les états enfants sont mutuellement exclusifs et un état initial doit être défini en appelant QState::setInitialState(). |
QState::ParallelStates | 1 | Les états enfants sont parallèles. Lorsque l'état parent est saisi, tous ses états enfants sont saisis en parallèle. |
enum QState::RestorePolicy
Cette énumération spécifie le type de politique de restauration. La politique de restauration prend effet lorsque la machine entre dans un état qui définit une ou plusieurs propriétés. Si la politique de restauration est définie sur RestoreProperties, la machine d'état enregistre la valeur originale de la propriété avant que la nouvelle valeur ne soit définie.
Par la suite, lorsque la machine entrera dans un état qui ne définit pas de valeur pour la propriété donnée, la propriété sera automatiquement restaurée à sa valeur initiale.
Une seule valeur initiale sera sauvegardée pour une propriété donnée. Si une valeur pour une propriété a déjà été enregistrée par la machine à états, elle ne sera pas écrasée tant que la propriété n'aura pas été restaurée avec succès.
| Constante | Valeur | Description |
|---|---|---|
QState::DontRestoreProperties | 0 | L'automate à états ne doit pas sauvegarder les valeurs initiales des propriétés et les restaurer ultérieurement. |
QState::RestoreProperties | 1 | L'automate à états doit enregistrer les valeurs initiales des propriétés et les restaurer ultérieurement. |
Voir également QStateMachine::globalRestorePolicy et QState::assignProperty().
Documentation sur les propriétés
[bindable] childMode : ChildMode
Note : Cette propriété prend en charge les liens QProperty.
Cette propriété contient le mode enfant de cet état
La valeur par défaut de cette propriété est QState::ExclusiveStates.
Fonctions d'accès :
| QState::ChildMode | childMode() const |
| void | setChildMode(QState::ChildMode mode) |
Signal Notifier :
| void | childModeChanged() | [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] errorState : QAbstractState*
Note : Cette propriété supporte les liens QProperty.
Cette propriété contient l'état d'erreur de cet état
Fonctions d'accès :
| QAbstractState * | errorState() const |
| void | setErrorState(QAbstractState *state) |
Signal Notifier :
| void | errorStateChanged() | [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] initialState : QAbstractState*
Note : Cette propriété supporte les liens QProperty.
Cette propriété contient l'état initial de cet état (l'un de ses états enfants).
Fonctions d'accès :
| QAbstractState * | initialState() const |
| void | setInitialState(QAbstractState *state) |
Signal Notificateur :
| void | initialStateChanged() | [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
QState::QState(QState *parent = nullptr)
Construit un nouvel état avec l'état parent donné.
QState::QState(QState::ChildMode childMode, QState *parent = nullptr)
Construit un nouvel état avec l'état donné childMode et l'état donné parent.
[virtual noexcept] QState::~QState()
Détruit cet état.
QAbstractTransition *QState::addTransition(QAbstractState *target)
Ajoute une transition inconditionnelle de cet état vers l'état target donné, et renvoie un nouvel objet de transition.
void QState::addTransition(QAbstractTransition *transition)
Ajoute l'état donné transition. La transition a cet état comme source. Cet état est propriétaire de la transition.
QSignalTransition *QState::addTransition(const QObject *sender, const char *signal, QAbstractState *target)
Ajoute une transition associée à l'objet signal donné de l'objet sender donné, et renvoie le nouvel objet QSignalTransition. La transition a cet état comme source et l'état target comme cible.
template <typename PointerToMemberFunction> QSignalTransition *QState::addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target)
Ajoute une transition associée à l'objet signal donné de l'objet sender donné, et renvoie le nouvel objet QSignalTransition. La transition a cet état comme source et l'objet target comme état cible.
Il s'agit d'une fonction surchargée.
void QState::assignProperty(QObject *object, const char *name, const QVariant &value)
Demande à cet état de définir la propriété avec la valeur donnée name de la valeur donnée object à la valeur donnée value lors de l'entrée dans l'état.
Voir aussi propertiesAssigned().
QState::ChildMode QState::childMode() const
Renvoie le mode enfant de cet état.
Note : fonction Getter pour la propriété childMode.
Voir également setChildMode().
[private signal] void QState::childModeChanged()
Ce signal est émis lorsque la propriété childMode 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é childMode.
Voir aussi QState::childMode.
QAbstractState *QState::errorState() const
Renvoie l'état d'erreur de cet état.
Note : Fonction Getter pour la propriété errorState.
Voir aussi setErrorState() et QStateMachine::error().
[private signal] void QState::errorStateChanged()
Ce signal est émis lorsque la propriété errorState 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é errorState.
Voir aussi QState::errorState.
[override virtual protected] bool QState::event(QEvent *e)
Réimplémente : QAbstractState::event(QEvent *e).
[private signal] void QState::finished()
Ce signal est émis lorsqu'un état enfant final de cet état est entré.
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.
Voir aussi QFinalState.
QAbstractState *QState::initialState() const
Renvoie l'état initial de cet état, ou nullptr si l'état n'a pas d'état initial.
Note : Fonction Getter pour la propriété initialState.
Voir également setInitialState().
[private signal] void QState::initialStateChanged()
Ce signal est émis lorsque la propriété initialState 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é initialState.
Voir aussi QState::initialState.
[override virtual protected] void QState::onEntry(QEvent *event)
Réimplémente : QAbstractState::onEntry(QEvent *event).
[override virtual protected] void QState::onExit(QEvent *event)
Réimplémente : QAbstractState::onExit(QEvent *event).
[private signal] void QState::propertiesAssigned()
Ce signal est émis lorsque toutes les propriétés ont reçu leur valeur finale. Si l'état attribue une valeur à une ou plusieurs propriétés pour lesquelles il existe une animation (définie lors de la transition ou en tant qu'animation par défaut dans la machine d'état), le signal ne sera pas émis tant que toutes ces animations n'auront pas fini d'être jouées.
S'il n'y a pas d'animations pertinentes ou d'affectations de propriétés définies pour l'état, le signal sera émis immédiatement avant l'entrée dans l'état.
Voir aussi QState::assignProperty() et QAbstractTransition::addAnimation()
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.
void QState::removeTransition(QAbstractTransition *transition)
Supprime le site transition de cet état. L'état libère la propriété de la transition.
Voir aussi addTransition().
void QState::setChildMode(QState::ChildMode mode)
Définit l'enfant mode de cet état.
Remarque : fonction de définition de la propriété childMode.
Voir aussi childMode().
void QState::setErrorState(QAbstractState *state)
Définit l'état d'erreur de cet état comme étant l'état donné state. Si l'état d'erreur n'est pas défini, ou s'il est défini à nullptr, l'état héritera de l'état d'erreur de son parent de manière récursive. Si aucun état d'erreur n'est défini pour l'état lui-même ou l'un de ses ancêtres, une erreur entraînera l'arrêt de l'exécution de la machine et une erreur sera affichée sur la console.
Remarque : fonction de définition de la propriété errorState.
Voir aussi errorState().
void QState::setInitialState(QAbstractState *state)
Définit l'état initial de cet état comme étant l'état donné state. state doit être un enfant de cet état.
Note : Fonction de définition de la propriété initialState.
Voir aussi initialState().
QList<QAbstractTransition *> QState::transitions() const
Renvoie les transitions sortantes de cet état (c'est-à-dire les transitions où cet état est source state), ou une liste vide si cet état n'a pas de transitions sortantes.
Voir aussi addTransition().
© 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.