QSignalTransition Class
La classe QSignalTransition fournit une transition basée sur un signal Qt. Plus d'informations...
| En-tête : | #include <QSignalTransition> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS StateMachine)target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake : | QT += statemachine |
| Héritages : | QAbstractTransition |
Propriétés
- senderObject : const QObject*
- signal : QByteArray
Fonctions publiques
| QSignalTransition(QState *sourceState = nullptr) | |
| QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr) | |
| QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr) | |
| virtual | ~QSignalTransition() |
| QBindable<const QObject *> | bindableSenderObject() |
| QBindable<QByteArray> | bindableSignal() |
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
| void | setSignal(const QByteArray &signal) |
| QByteArray | signal() const |
Signaux
| void | senderObjectChanged() |
| void | signalChanged() |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
| virtual bool | eventTest(QEvent *event) override |
| virtual void | onTransition(QEvent *event) override |
Description détaillée
Généralement, vous utiliserez la surcharge de QState::addTransition() qui prend un émetteur et un signal comme arguments, plutôt que de créer directement des objets QSignalTransition. QSignalTransition fait partie du cadreQt State Machine .
Vous pouvez sous-classer QSignalTransition et réimplémenter eventTest() pour rendre la transition d'un signal conditionnelle ; l'objet événement transmis à eventTest() sera un objet QStateMachine::SignalEvent. Exemple :
class CheckedTransition : public QSignalTransition { public: CheckedTransition(QCheckBox *check) : QSignalTransition(check, SIGNAL(stateChanged(int))) {} protected: bool eventTest(QEvent *e) { if (!QSignalTransition::eventTest(e)) return false; QStateMachine::SignalEvent *se = static_cast<QStateMachine::SignalEvent*>(e); return (se->arguments().at(0).toInt() == Qt::Checked); } }; ... QCheckBox *check = new QCheckBox(); check->setTristate(true); QState *s1 = new QState(); QState *s2 = new QState(); CheckedTransition *t1 = new CheckedTransition(check); t1->setTargetState(s2); s1->addTransition(t1);
Documentation des propriétés
[bindable] senderObject : const QObject*
Remarque : Cette propriété prend en charge les liaisons QProperty.
Cette propriété contient l'objet émetteur auquel cette transition de signal est associée.
Fonctions d'accès :
| const QObject * | senderObject() const |
| void | setSenderObject(const QObject *sender) |
Signal Notificateur :
| void | senderObjectChanged() | [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] signal : QByteArray
Note : Cette propriété prend en charge les liaisons QProperty.
Cette propriété contient le signal auquel cette transition de signal est associée
Fonctions d'accès :
Notifier signal :
| void | signalChanged() | [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
QSignalTransition::QSignalTransition(QState *sourceState = nullptr)
Construit une nouvelle transition de signal avec l'adresse sourceState.
QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
Construit une nouvelle transition de signal associée à la donnée signal de la donnée sender, et à la donnée sourceState.
template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
sender Construit une nouvelle transition de signal associée à l'objet signal donné et à l'objet sourceState donné. Ce constructeur est activé si le compilateur prend en charge les constructeurs délégués, comme l'indique la présence de la macro Q_COMPILER_DELEGATING_CONSTRUCTORS.
Il s'agit d'une fonction surchargée.
[virtual noexcept] QSignalTransition::~QSignalTransition()
Détruit cette transition de signal.
[override virtual protected] bool QSignalTransition::event(QEvent *e)
Réimplémente : QAbstractTransition::event(QEvent *e).
[override virtual protected] bool QSignalTransition::eventTest(QEvent *event)
Réimplémente : QAbstractTransition::eventTest(QEvent *event).
L'implémentation par défaut renvoie true si l'objet event est un objet QStateMachine::SignalEvent et si l'expéditeur de l'événement et l'index du signal correspondent à cette transition, et renvoie false dans le cas contraire.
[override virtual protected] void QSignalTransition::onTransition(QEvent *event)
Réimplémente : QAbstractTransition::onTransition(QEvent *event).
const QObject *QSignalTransition::senderObject() const
Renvoie l'objet émetteur associé à cette transition de signal.
Note : Fonction Getter pour la propriété senderObject.
Voir également setSenderObject().
[private signal] void QSignalTransition::senderObjectChanged()
Ce signal est émis lorsque la propriété senderObject 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é senderObject.
Voir aussi QSignalTransition::senderObject.
void QSignalTransition::setSenderObject(const QObject *sender)
Définit l'objet sender associé à cette transition de signal.
Note : Fonction de définition de la propriété senderObject.
Voir aussi senderObject().
void QSignalTransition::setSignal(const QByteArray &signal)
Définit le site signal associé à la transition de ce signal.
Remarque : fonction de définition de la propriété signal.
Voir aussi signal().
QByteArray QSignalTransition::signal() const
Renvoie le signal associé à cette transition de signal.
Note : Fonction Getter pour le signal de propriété.
Voir également setSignal().
[private signal] void QSignalTransition::signalChanged()
Ce signal est émis lorsque la propriété du signal 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é signal.
Voir aussi QSignalTransition::signal.
© 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.