QSignalTransition 類

The QSignalTransition 類提供基於 Qt 信號的過渡。 更多...

頭: #include <QSignalTransition>
qmake: QT += core
Since: Qt 4.6
繼承: QAbstractTransition

特性

公共函數

QSignalTransition (QState * sourceState = Q_NULLPTR)
QSignalTransition (const QObject * sender , const char * signal , QState * sourceState = Q_NULLPTR)
QSignalTransition (const QObject * sender , PointerToMemberFunction signal , QState * sourceState = Q_NULLPTR)
~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 )
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 (const QObject * sender )

通知程序信號:

void senderObjectChanged () [見下文注意事項]

注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。

signal : QByteArray

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

訪問函數:

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

通知程序信號:

void signalChanged () [見下文注意事項]

注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。

成員函數文檔編製

QSignalTransition:: QSignalTransition ( QState * sourceState = Q_NULLPTR)

構造新的信號過渡采用給定 sourceState .

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

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

QSignalTransition:: QSignalTransition (const QObject * sender , PointerToMemberFunction signal , QState * sourceState = Q_NULLPTR)

這是重載函數。

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 引入。

QSignalTransition:: ~QSignalTransition ()

銷毀此信號過渡。

[virtual protected] bool QSignalTransition:: event ( QEvent * e )

重實現自 QObject::event ().

[virtual protected] bool QSignalTransition:: eventTest ( QEvent * event )

重實現自 QAbstractTransition::eventTest ().

默認實現返迴 true event QStateMachine::SignalEvent object and the event's sender and signal index match this transition, and returns false 否則。

[virtual protected] void QSignalTransition:: onTransition ( QEvent * event )

重實現自 QAbstractTransition::onTransition ().

QObject *QSignalTransition:: senderObject () const

Returns the sender object associated with this signal transition.

注意: getter 函數對於特性 senderObject .

另請參閱 setSenderObject ().

[signal] void QSignalTransition:: senderObjectChanged ()

此信號被發射當 senderObject 特性改變。

該函數在 Qt 5.4 引入。

注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。

注意: 通知程序信號對於特性 senderObject .

另請參閱 QSignalTransition::senderObject .

void QSignalTransition:: setSenderObject (const QObject * sender )

設置 sender object associated with this signal transition.

注意: setter 函數對於特性 senderObject .

另請參閱 senderObject ().

void QSignalTransition:: setSignal (const QByteArray & signal )

設置 signal associated with this signal transition.

注意: setter 函數對於特性 signal .

另請參閱 signal ().

QByteArray QSignalTransition:: signal () const

Returns the signal associated with this signal transition.

注意: getter 函數對於特性 signal .

另請參閱 setSignal ().

[signal] void QSignalTransition:: signalChanged ()

此信號被發射,當信號特性改變時。

該函數在 Qt 5.4 引入。

注意: 這是私有信號。它可以用於信號連接,但不能由用戶發射。

注意: 通知程序信號對於特性 signal .

另請參閱 QSignalTransition::signal .