Qt Reference Documentation

# QSignalTransition Class Reference

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

     #include <QSignalTransition>

Inherits: QAbstractTransition.

This class was introduced in Qt 4.6.

- List of all members, including inherited members

## Properties

- senderObject : QObject *
- signal : QByteArray

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

## Public Functions

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

- 9 public functions inherited from QAbstractTransition
- 29 public functions 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
- 7 protected functions inherited from QObject

### Additional Inherited Members

- 1 public slot inherited from QObject
- 1 signal inherited from QAbstractTransition
- 1 signal inherited from QObject
- 5 static public members inherited from QObject
- 3 protected functions inherited from QAbstractTransition
- 7 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 ( QObject * sender )

### signal : QByteArray

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

Access functions:

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

## Member Function Documentation

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

Constructs a new signal transition with the given sourceState.

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

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.

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

Reimplemented from QObject::event().

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

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.

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

Reimplemented from QAbstractTransition::onTransition().