QSignalTransition Class | Qt Core 5.6

Qt 5.6 | Qt Core | C++ Classes | QSignalTransition

Qt 5.6.2 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

- List of all members, including inherited members

## Properties

- senderObject : QObject *
- signal : QByteArray

- 4 properties inherited from QAbstractTransition
- 1 property inherited from QObject

## Public Functions

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

- 11 public functions inherited from QAbstractTransition
- 31 public functions inherited from QObject

## Signals

void | senderObjectChanged()
void | signalChanged()

- 3 signals inherited from QAbstractTransition
- 2 signals inherited from QObject

## Reimplemented Protected Functions

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

- 3 protected functions inherited from QAbstractTransition
- 9 protected functions inherited from QObject

### Additional Inherited Members

- 1 public slot inherited from QObject
- 11 static public members inherited from QObject
- 3 protected functions inherited from QAbstractTransition
- 9 protected functions inherited from QObject

## Detailed Description

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

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() | [see note below]

Note: This is a private signal. It can be used in signal connections but cannot be emitted by the user.

### 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() | [see note below]

Note: This is a private signal. It can be used in signal connections but cannot be emitted by the user.

## Member Function Documentation

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

Constructs a new signal transition with the given sourceState.

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

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

### QSignalTransition::~QSignalTransition()

Destroys this signal transition.

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

Reimplemented from QObject::event().

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

Reimplemented from QAbstractTransition::eventTest().

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.

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

Reimplemented from QAbstractTransition::onTransition().

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

Returns the sender object associated with this signal transition.

Note: Getter function for property senderObject.

See also setSenderObject().

### `[signal]` void QSignalTransition::senderObjectChanged()

This signal is emitted when the senderObject property is changed.

This function was introduced in Qt 5.4.

Note: This is a private signal. It can be used in signal connections but cannot be emitted by the user.

Note: Notifier signal for property senderObject.

See also QSignalTransition::senderObject.

### 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().

### `[signal]` void QSignalTransition::signalChanged()

This signal is emitted when the signal property is changed.

This function was introduced in Qt 5.4.

Note: This is a private signal. It can be used in signal connections but cannot be emitted by the user.

Note: Notifier signal for property signal.

See also QSignalTransition::signal.