The QSignalTransition 类提供基于 Qt 信号的过渡。 更多...
| 头: | #include <QSignalTransition> |
| Since: | Qt 4.6 |
| 继承: | QAbstractTransition |
| 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 |
| virtual bool | event (QEvent * e ) |
| virtual bool | eventTest (QEvent * event ) |
| virtual void | onTransition (QEvent * event ) |
The QSignalTransition 类提供基于 Qt 信号的过渡。
通常,将使用重载 QState::addTransition () 接受发送器和信号作为自变量,而不是创建 QSignalTransition 对象直接。 QSignalTransition 属于 状态机框架 .
可以子类化 QSignalTransition 并重实现 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 (QObject * sender ) |
This property holds the signal that this signal transition is associated with.
访问函数:
| QByteArray | signal () const |
| void | setSignal (const QByteArray & signal ) |
构造新的信号过渡采用给定 sourceState .
Constructs a new signal transition associated with the given signal 为给定 sender ,和采用给定 sourceState .
销毁此信号过渡。
[virtual protected]
bool
QSignalTransition::
event
(
QEvent
*
e
)
重实现自 QObject::event ().
[virtual protected]
bool
QSignalTransition::
eventTest
(
QEvent
*
event
)
重实现自 QAbstractTransition::eventTest ().
The default implementation returns true if the event 是 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
)
重实现自 QAbstractTransition::onTransition ().