QSignalTransition Class Reference

[QtCore module]

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

Inherits QAbstractTransition.

Methods

  • __init__ (self, QState sourceState = None)
  • __init__ (self, QObject sender, SIGNAL() signal, QState sourceState = None)
  • __init__ (self, signal signal, QState sourceState = None)
  • bool event (self, QEvent e)
  • bool eventTest (self, QEvent event)
  • onTransition (self, QEvent event)
  • QObject senderObject (self)
  • setSenderObject (self, QObject sender)
  • setSignal (self, QByteArray signal)
  • QByteArray signal (self)

Detailed Description

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

通常,您将使用的过载QState.addTransition()采用一个发送器和信号作为参数,而不是创建QSignalTransition直接对象。 QSignalTransition是一部分The State Machine Framework

你可以继承QSignalTransition和重新实现eventTest( )方法使一个信号转换条件;传递给事件对象eventTest()将一个QStateMachine.SignalEvent对象。例如:

  1. class CheckedTransition : public QSignalTransition
  2. {
  3. public:
  4. CheckedTransition([QCheckBox](qcheckbox.html) *check)
  5. : QSignalTransition(check, SIGNAL(stateChanged(int))) {}
  6. protected:
  7. bool eventTest([QEvent](qevent.html) *e) {
  8. if (!QSignalTransition.eventTest(e))
  9. return false;
  10. [QStateMachine](qstatemachine.html).SignalEvent *se = static_cast<[QStateMachine](qstatemachine.html).SignalEvent*>(e);
  11. return (se->arguments().at(0).toInt() == [Qt](qt.html).Checked);
  12. }
  13. };
  14. ...
  15. [QCheckBox](qcheckbox.html) *check = new [QCheckBox](qcheckbox.html)();
  16. check->setTristate(true);
  17. [QState](qstate.html) *s1 = new [QState](qstate.html)();
  18. [QState](qstate.html) *s2 = new [QState](qstate.html)();
  19. CheckedTransition *t1 = new CheckedTransition(check);
  20. t1->setTargetState(s2);
  21. s1->addTransition(t1);

Method Documentation

  1. QSignalTransition.__init__ (self, QState sourceState = None)

sourceState的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造具有给定一个新的信号转换sourceState

  1. QSignalTransition.__init__ (self, QObject sender, SIGNAL() signal, QState sourceState = None)

sourceState的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造具有给定关联的一个新的信号转换signal的给定sender,并用给定的sourceState

  1. QSignalTransition.__init__ (self, signal signal, QState sourceState = None)

sourceState的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

  1. bool QSignalTransition.event (self, QEvent e)

从重新实现QObject.event( ) 。

  1. bool QSignalTransition.eventTest (self, QEvent event)

从重新实现QAbstractTransition.eventTest( ) 。

默认实现返回True,如果eventQStateMachine.SignalEvent对象和事件的发送者和信号索引匹配这个过渡,否则返回False 。

  1. QSignalTransition.onTransition (self, QEvent event)

从重新实现QAbstractTransition.onTransition( ) 。

  1. QObject QSignalTransition.senderObject (self)

[

  1. QSignalTransition.setSenderObject (self, QObject sender)
  1. QSignalTransition.setSignal (self, QByteArray signal)

](qobject.html)

  1. QByteArray QSignalTransition.signal (self)