The QSignalTransition class provides a transition based on a Qt 信号。 更多...
继承 QAbstractTransition .
The QSignalTransition class provides a transition based on a Qt 信号。
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);
sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.
Constructs a new signal transition with the given sourceState .
sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.
Constructs a new signal transition associated with the given signal of the given sender ,和采用给定 sourceState .
sourceState argument, if not None, causes self to be owned by Qt instead of PyQt.
重实现自 QObject.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.
重实现自 QAbstractTransition.onTransition ().