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 |
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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qsignaltransition.html