The QSignalTransition class provides a transition based on a Qt signal. 更多...
| 頭: | #include <QSignalTransition> |
| qmake: | QT += core |
| Since: | Qt 4.6 |
| 繼承: | QAbstractTransition |
該類在 Qt 4.6 引入。
| 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 |
| void | senderObjectChanged () |
| void | signalChanged () |
| virtual bool | event (QEvent * e ) override |
| virtual bool | eventTest (QEvent * event ) override |
| virtual void | onTransition (QEvent * event ) override |
通常,將使用重載 QState::addTransition () that takes a sender and signal as arguments, rather than creating QSignalTransition objects directly. QSignalTransition is part of 狀態機框架 .
You can subclass QSignalTransition and reimplement eventTest () to make a signal transition conditional; the event object passed to eventTest () 將是 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);
This property holds the sender object that this signal transition is associated with
訪問函數:
| QObject * | senderObject () const |
| void | setSenderObject (const QObject * sender ) |
通知程序信號:
| void | senderObjectChanged () | [見下文注意事項] |
注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。
This property holds the signal that this signal transition is associated with
訪問函數:
| QByteArray | signal () const |
| void | setSignal (const QByteArray & signal ) |
通知程序信號:
| void | signalChanged () | [見下文注意事項] |
注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。
這是重載函數。
Constructs a new signal transition associated with the given signal 為給定 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.
該函數在 Qt 5.7 引入。
Constructs a new signal transition associated with the given signal 為給定 sender ,和采用給定 sourceState .
構造新的信號過渡采用給定 sourceState .
[signal]
void
QSignalTransition::
senderObjectChanged
()
此信號發射,當 senderObject 特性改變。
注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。
注意: 通知程序信號對於特性 senderObject .
該函數在 Qt 5.4 引入。
另請參閱 QSignalTransition::senderObject .
[signal]
void
QSignalTransition::
signalChanged
()
此信號被發射,當信號特性改變時。
注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。
注意: 通知程序信號對於特性 signal .
該函數在 Qt 5.4 引入。
另請參閱 QSignalTransition::signal .
[虛擬]
QSignalTransition::
~QSignalTransition
()
銷毀此信號過渡。
[override virtual protected]
bool
QSignalTransition::
event
(
QEvent
*
e
)
重實現: QAbstractTransition::event (QEvent *e).
[override virtual protected]
bool
QSignalTransition::
eventTest
(
QEvent
*
event
)
重實現: QAbstractTransition::eventTest (QEvent *event).
默認實現返迴
true
若
event
是
QStateMachine::SignalEvent
object and the event's sender and signal index match this transition, and returns
false
否則。
[override virtual protected]
void
QSignalTransition::
onTransition
(
QEvent
*
event
)
重實現: QAbstractTransition::onTransition (QEvent *event).
Returns the sender object associated with this signal transition.
注意: Getter function for property senderObject.
另請參閱 setSenderObject ().
設置 sender object associated with this signal transition.
注意: setter 函數對於特性 senderObject .
另請參閱 senderObject ().
設置 signal associated with this signal transition.
注意: setter 函數對於特性 signal .
另請參閱 signal ().
Returns the signal associated with this signal transition.
注意: Getter function for property signal.
另請參閱 setSignal ().