QAbstractTransition Class
La classe `QAbstractTransition` est la classe de base des transitions entre les objets ` QAbstractState `. En savoir plus…
| En-tête : | #include <QAbstractTransition> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake : | QT += statemachine |
| Hérite de : | QObject |
| Hérité par : |
Types publics
| enum | TransitionType { ExternalTransition, InternalTransition } |
Propriétés
- sourceState : QState*
- targetState : QAbstractState*
- targetStates : QList<QAbstractState*>
- transitionType : TransitionType
Fonctions publiques
| QAbstractTransition(QState *sourceState = nullptr) | |
| virtual | ~QAbstractTransition() |
| void | addAnimation(QAbstractAnimation *animation) |
| QList<QAbstractAnimation *> | animations() const |
| QBindable<QAbstractTransition::TransitionType> | bindableTransitionType() |
| QStateMachine * | machine() const |
| void | removeAnimation(QAbstractAnimation *animation) |
| void | setTargetState(QAbstractState *target) |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
| QState * | sourceState() const |
| QAbstractState * | targetState() const |
| QList<QAbstractState *> | targetStates() const |
| QAbstractTransition::TransitionType | transitionType() const |
Signaux
| void | targetStateChanged() |
| void | targetStatesChanged() |
| void | triggered() |
Fonctions protégées
| virtual bool | eventTest(QEvent *event) = 0 |
| virtual void | onTransition(QEvent *event) = 0 |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
Description détaillée
La classe QAbstractTransition est la classe de base abstraite des transitions entre les états (objets de type `QAbstractState `) d'une instance de ` QStateMachine`. QAbstractTransition fait partie du frameworkQt State Machine.
La fonction sourceState() renvoie la source de la transition. La fonction targetStates() renvoie les cibles de la transition. La fonction machine() renvoie la machine à états dont fait partie la transition.
Le signal triggered() est émis lorsque la transition a été déclenchée.
Les transitions peuvent déclencher la lecture d’animations. Utilisez la fonction addAnimation() pour ajouter une animation à la transition.
Sous-classement
La fonction eventTest() est appelée par la machine à états pour déterminer si un événement doit déclencher la transition. Dans votre réimplémentation, vous vérifiez généralement le type d’événement, vous convertissez l’objet événement au type approprié, puis vous vérifiez qu’une ou plusieurs propriétés de l’événement répondent à vos critères.
La fonction ` onTransition()` est appelée lorsque la transition est déclenchée ; réimplémentez cette fonction pour effectuer un traitement personnalisé de la transition.
Documentation sur les types de membres
enum QAbstractTransition::TransitionType
Cette énumération spécifie le type de transition. Par défaut, il s'agit d'une transition externe.
| Constante | Valeur | Description |
|---|---|---|
QAbstractTransition::ExternalTransition | 0 | Tout état qui est l’état source d’une transition (autre qu’une transition sans destination) est quitté, puis réintégré si nécessaire. |
QAbstractTransition::InternalTransition | 1 | Si l’état cible d’une transition est un sous-état d’un état composé, et que cet état composé est l’état source, une transition interne ne quittera pas l’état source. |
Voir également QAbstractTransition::transitionType.
Documentation sur les propriétés
[read-only] sourceState : QState*
Cette propriété contient l'état source (parent) de cette transition
Fonctions d'accès :
| QState * | sourceState() const |
targetState : QAbstractState*
Cette propriété contient l'état cible de cette transition
Si une transition n'a pas d'état cible, elle peut tout de même être déclenchée, mais cela n'entraînera pas de modification de la configuration de la machine à états (c'est-à-dire que l'état actuel ne sera ni quitté ni réintégré).
Fonctions d'accès :
| QAbstractState * | targetState() const |
| void | setTargetState(QAbstractState *target) |
Signal de notification :
| void | targetStateChanged() | [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.
targetStates : QList<QAbstractState*>
Cette propriété contient les états cibles de cette transition
Si plusieurs états sont spécifiés, ils doivent tous être des descendants du même état de groupe parallèle.
Fonctions d'accès :
| QList<QAbstractState *> | targetStates() const |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
Signal de notification :
| void | targetStatesChanged() | [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] transitionType : TransitionType
Remarque : cette propriété prend en charge les liaisons de type « QProperty ».
Indique si cette transition est une transition interne ou une transition externe.
Les transitions internes et externes se comportent de la même manière, sauf dans le cas d'une transition dont l'état source est un état composé et dont la ou les cibles sont des descendants de l'état source. Dans ce cas, une transition interne ne quittera pas son état source pour y revenir, contrairement à une transition externe.
Par défaut, le type est une transition externe.
Fonctions d'accès :
| QAbstractTransition::TransitionType | transitionType() const |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
Documentation des fonctions membres
QAbstractTransition::QAbstractTransition(QState *sourceState = nullptr)
Crée un nouvel objet `QAbstractTransition` avec l'sourceState` indiquée.
[virtual noexcept] QAbstractTransition::~QAbstractTransition()
Supprime cette transition.
void QAbstractTransition::addAnimation(QAbstractAnimation *animation)
Ajoute l'animation spécifiée à cette transition. La transition ne prend pas possession de l'animation.
Voir également ` removeAnimation()` et ` animations()`.
QList<QAbstractAnimation *> QAbstractTransition::animations() const
Renvoie la liste des animations associées à cette transition, ou une liste vide si celle-ci ne comporte aucune animation.
Voir aussi addAnimation().
[override virtual protected] bool QAbstractTransition::event(QEvent *e)
Réimplémente : QObject::event(QEvent *e).
[pure virtual protected] bool QAbstractTransition::eventTest(QEvent *event)
Cette fonction est appelée pour déterminer si l'event ion fournie doit déclencher cette transition. Réimplémentez cette fonction et renvoyez « true » si l'événement doit déclencher la transition, sinon renvoyez « false ».
QStateMachine *QAbstractTransition::machine() const
Renvoie la machine à états dont fait partie cette transition, ou ` nullptr ` si la transition ne fait pas partie d'une machine à états.
[pure virtual protected] void QAbstractTransition::onTransition(QEvent *event)
Cette fonction est appelée lorsque la transition est déclenchée. L'event, qui est l'élément ayant provoqué le déclenchement de la transition. Réimplémentez cette fonction pour effectuer un traitement personnalisé lorsque la transition est déclenchée.
void QAbstractTransition::removeAnimation(QAbstractAnimation *animation)
Supprime l'animation on indiquée de cette transition.
Voir aussi addAnimation().
void QAbstractTransition::setTargetState(QAbstractState *target)
Définit l'état « target » de cette transition.
Remarque : fonctionde définition de la propriété ` targetState`.
Voir aussi targetState().
void QAbstractTransition::setTargetStates(const QList<QAbstractState *> &targets)
Définit les états cibles de cette transition comme étant l'targets fournie.
Remarque : fonctionde définition de la propriété targetStates.
Voir aussi targetStates().
void QAbstractTransition::setTransitionType(QAbstractTransition::TransitionType type)
Définit le type de transition sur « type ».
Remarque : fonctionde définition de la propriété transitionType.
Voir également transitionType().
QState *QAbstractTransition::sourceState() const
Renvoie l'état source de cette transition, ou « nullptr » si cette transition n'a pas d'état source.
Remarque : fonctiongetter pour la propriété sourceState.
QAbstractState *QAbstractTransition::targetState() const
Renvoie l'état cible de cette transition, ou ` nullptr ` si la transition n'a pas d'état cible.
Remarque : fonctionde lecture pour la propriété targetState.
Voir aussi setTargetState().
[private signal] void QAbstractTransition::targetStateChanged()
Ce signal est émis lorsque la propriété « targetState » 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é targetState.
Voir également QAbstractTransition::targetState.
QList<QAbstractState *> QAbstractTransition::targetStates() const
Renvoie les états cibles de cette transition, ou une liste vide si cette transition ne comporte aucun état cible.
Remarque : fonctionde lecture pour la propriété targetStates.
Voir aussi setTargetStates().
[private signal] void QAbstractTransition::targetStatesChanged()
Ce signal est émis lorsque la propriété « targetStates » 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é targetStates.
Voir également QAbstractTransition::targetStates.
QAbstractTransition::TransitionType QAbstractTransition::transitionType() const
Renvoie le type de la transition.
Remarque : fonctiongetter pour la propriété transitionType.
Voir aussi setTransitionType().
[private signal] void QAbstractTransition::triggered()
Ce signal est émis lorsque la transition a été déclenchée (après l'appel de la fonction onTransition()).
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.
© 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.