QSignalTransition 类

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);
					

特性文档编制

senderObject : QObject *

This property holds the sender object that this signal transition is associated with.

访问函数:

QObject * senderObject () const
void setSenderObject (QObject * sender )

signal : QByteArray

This property holds the signal that this signal transition is associated with.

访问函数:

QByteArray signal () const
void setSignal (const QByteArray & signal )

成员函数文档编制

QSignalTransition:: QSignalTransition ( QState * sourceState = 0)

构造新的信号过渡采用给定 sourceState .

QSignalTransition:: QSignalTransition ( QObject * sender , const char * signal , QState * sourceState = 0)

Constructs a new signal transition associated with the given signal 为给定 sender ,和采用给定 sourceState .

QSignalTransition:: ~QSignalTransition ()

销毁此信号过渡。

[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 ().