Sur cette page

QSignalTransition Class

La classe QSignalTransition permet de créer une transition basée sur un signal Qt. En savoir plus...

En-tête : #include <QSignalTransition>
CMake : find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake : QT += statemachine
Hérite de : 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

En règle générale, vous utiliserez la surcharge de la fonction QState::addTransition() qui prend un émetteur et un signal en arguments, plutôt que de créer directement des objets QSignalTransition. QSignalTransition fait partie du framework «Qt State Machine ».

Vous pouvez créer une sous-classe de QSignalTransition et réimplémenter la méthode eventTest() pour rendre une transition de signal conditionnelle ; l’objet événement transmis à eventTest() sera un objet de type 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 sur les propriétés

[bindable] senderObject : const QObject*

Remarque : cette propriété prend en charge les liaisons de type « 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 de notification :

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

Remarque : cette propriété prend en charge les liaisons de type « 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)

Signal de notification :

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)

Crée une nouvelle transition de signal à l'aide de l'sourceState on fournie.

QSignalTransition::QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)

Crée une nouvelle transition de signal associée à l'signal, à l'sender et à l'sourceState indiqués.

template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)

Construit une nouvelle transition de signal associée à l'signal donné de l'objet sender spécifié et à l'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()

Annule 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'event est un objet ` QStateMachine::SignalEvent ` et si l'expéditeur de l'événement et l'index du signal correspondent à cette transition ; elle 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.

Remarque : fonctiongetter pour la propriété senderObject.

Voir aussi 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.

Remarque : signalde notification pour la propriété ` senderObject`.

Voir également QSignalTransition::senderObject.

void QSignalTransition::setSenderObject(const QObject *sender)

Définit l'objet « sender » associé à cette transition de signal.

Remarque : fonctionde définition de la propriété senderObject.

Voir aussi senderObject().

void QSignalTransition::setSignal(const QByteArray &signal)

Définit l’ signal associée à cette transition de signal.

Remarque : fonctionde définition de la propriété signal.

Voir également ` signal()`.

QByteArray QSignalTransition::signal() const

Renvoie le signal associé à cette transition de signal.

Remarque : fonctiongetter pour la propriété signal.

Voir aussi setSignal().

[private signal] void QSignalTransition::signalChanged()

Ce signal est émis lorsque la propriété « 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.

Remarque : signalde notification pour la propriété signal.

Voir également 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.