Sur cette page

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

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

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 :

QByteArray signal() const
void setSignal(const QByteArray &signal)

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.