QSignalTransition

PyQt5.QtCore.QSignalTransition

Inherits from QAbstractTransition.

Description

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

Typically you would use the overload of 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 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);

Methods

__init__(sourceState: QState = None)

Constructs a new signal transition with the given sourceState.


__init__(pyqtBoundSignal, sourceState: QState = None)

TODO


event(QEvent) bool

TODO


eventTest(QEvent) bool

TODO


onTransition(QEvent)

TODO


senderObject() QObject

Returns the sender object associated with this signal transition.

See also

setSenderObject().


setSenderObject(QObject)

Sets the sender object associated with this signal transition.

See also

senderObject().


setSignal(Union[QByteArray, bytes, bytearray])

Sets the signal associated with this signal transition.

See also

signal().


signal() QByteArray

Returns the signal associated with this signal transition.

See also

setSignal().

Signals

senderObjectChanged()

TODO


signalChanged()

TODO