- Qt 5.15
- Qt Core
- C++ Classes
- QSignalTransition
- Qt 5.15.19 Reference Documentation

# QSignalTransition Class

The QSignalTransition class provides a transition based on a Qt signal. More...

Header: | #include <QSignalTransition>
qmake: | QT += core
Since: | Qt 4.6
Inherits: | QAbstractTransition

This class was introduced in Qt 4.6.

- List of all members, including inherited members

## Properties

- senderObject : QObject*
- signal : QByteArray

## Public Functions

| QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
| QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
| QSignalTransition(QState *sourceState = nullptr)
virtual | ~QSignalTransition()
QObject * | senderObject() const
void | setSenderObject(const QObject *sender)
void | setSignal(const QByteArray &signal)
QByteArray | signal() const

## Signals

void | senderObjectChanged(QPrivateSignal)
void | signalChanged(QPrivateSignal)

## Reimplemented Protected Functions

virtual bool | event(QEvent *e) override
virtual bool | eventTest(QEvent *event) override
virtual void | onTransition(QEvent *event) override

## Detailed Description

Typically you would use the overload of QState::addTransition() that takes a sender and signal as arguments, rather than creating QSignalTransition objects directly. QSignalTransition is part of The State Machine Framework.

You can subclass QSignalTransition and reimplement eventTest() to make a signal transition conditional; the event object passed to eventTest() will be a QStateMachine::SignalEvent object. Example:

     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);

## Property Documentation

### senderObject : QObject*

This property holds the sender object that this signal transition is associated with

Access functions:

QObject * | senderObject() const
void | setSenderObject(const QObject *sender)

Notifier signal:

void | senderObjectChanged(QPrivateSignal)

### signal : QByteArray

This property holds the signal that this signal transition is associated with

Access functions:

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

Notifier signal:

void | signalChanged(QPrivateSignal)

## Member Function Documentation

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

This is an overloaded function.

Constructs a new signal transition associated with the given signal of the given sender object and with the given sourceState. This constructor is enabled if the compiler supports delegating constructors, as indicated by the presence of the macro Q_COMPILER_DELEGATING_CONSTRUCTORS.

This function was introduced in Qt 5.7.

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

Constructs a new signal transition associated with the given signal of the given sender, and with the given sourceState.

### QSignalTransition::QSignalTransition(QState *sourceState = nullptr)

Constructs a new signal transition with the given sourceState.

### `[virtual]` QSignalTransition::~QSignalTransition()

Destroys this signal transition.

### `[override virtual protected]` bool QSignalTransition::event(QEvent *e)

Reimplements: QAbstractTransition::event(QEvent *e).

### `[override virtual protected]` bool QSignalTransition::eventTest(QEvent *event)

Reimplements: QAbstractTransition::eventTest(QEvent *event).

The default implementation returns `true` if the event is a QStateMachine::SignalEvent object and the event's sender and signal index match this transition, and returns `false` otherwise.

### `[override virtual protected]` void QSignalTransition::onTransition(QEvent *event)

Reimplements: QAbstractTransition::onTransition(QEvent *event).

### QObject *QSignalTransition::senderObject() const

Returns the sender object associated with this signal transition.

Note: Getter function for property senderObject.

See also setSenderObject().

### void QSignalTransition::setSenderObject(const QObject *sender)

Sets the sender object associated with this signal transition.

Note: Setter function for property senderObject.

See also senderObject().

### void QSignalTransition::setSignal(const QByteArray &signal)

Sets the signal associated with this signal transition.

Note: Setter function for property signal.

See also signal().

### QByteArray QSignalTransition::signal() const

Returns the signal associated with this signal transition.

Note: Getter function for property signal.

See also setSignal().