Auf dieser Seite

QSignalTransition Class

Die Klasse `QSignalTransition` stellt einen Übergang bereit, der auf einem Qt-Signal basiert. Mehr dazu...

Header: #include <QSignalTransition>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
Erbt von: QAbstractTransition

Eigenschaften

Öffentliche Funktionen

QSignalTransition(QState *sourceState = nullptr)
QSignalTransition(const QObject *sender, const char *signal, QState *sourceState = nullptr)
QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)
virtual ~QSignalTransition()
QBindable<const QObject *> bindableSenderObject()
QBindable<QByteArray> bindableSignal()
const QObject *senderObject() const
void setSenderObject(const QObject *sender)
void setSignal(const QByteArray &signal)
QByteArray signal() const

Signale

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *e) override
virtual bool eventTest(QEvent *event) override
virtual void onTransition(QEvent *event) override

Ausführliche Beschreibung

In der Regel würden Sie die Überladung von ` QState::addTransition()` verwenden, die einen Sender und ein Signal als Argumente entgegennimmt, anstatt `QSignalTransition`-Objekte direkt zu erstellen. `QSignalTransition` ist Teil des „Qt State Machine “-Frameworks.

Sie können eine Unterklasse von `QSignalTransition` erstellen und ` eventTest()` neu implementieren, um einen Signalübergang bedingt zu gestalten; das an ` eventTest()` übergebene Ereignisobjekt ist dann ein ` QStateMachine::SignalEvent `-Objekt. Beispiel:

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

Dokumentation zu den Eigenschaften

[bindable] senderObject : const QObject*

Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.

Diese Eigenschaft enthält das Sender-Objekt, mit dem dieser Signalübergang verknüpft ist

Zugriffsfunktionen:

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

Notifier-Signal:

void senderObjectChanged()[see note below]

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, darf jedoch nicht vom Benutzer ausgelöst werden.

[bindable] signal : QByteArray

Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.

Diese Eigenschaft enthält das Signal, mit dem dieser Signalübergang verknüpft ist

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void signalChanged()[see note below]

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Dokumentation der Mitgliedsfunktionen

QSignalTransition::QSignalTransition(QState *sourceState = nullptr)

Erzeugt einen neuen Signalübergang mit dem angegebenen „ sourceState “.

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

Erstellt einen neuen Signalübergang, der mit dem angegebenen signal des angegebenen sender sowie mit dem angegebenen sourceState verknüpft ist.

template <typename PointerToMemberFunction> QSignalTransition::QSignalTransition(const QObject *sender, PointerToMemberFunction signal, QState *sourceState = nullptr)

Erstellt einen neuen Signalübergang, der mit dem angegebenen ` signal ` des angegebenen ` sender `-Objekts und mit dem angegebenen ` sourceState` verknüpft ist. Dieser Konstruktor ist aktiviert, wenn der Compiler delegierende Konstruktoren unterstützt, was durch das Vorhandensein des Makros `Q_COMPILER_DELEGATING_CONSTRUCTORS` angezeigt wird.

Dies ist eine überladene Funktion.

[virtual noexcept] QSignalTransition::~QSignalTransition()

Löscht diesen Signalübergang.

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

Implementiert: QAbstractTransition::event(QEvent *e).

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

Implementiert: QAbstractTransition::eventTest(QEvent *event).

Die Standardimplementierung gibt „ true “ zurück, wenn „ event “ ein „ QStateMachine::SignalEvent “-Objekt ist und der Absender sowie der Signalindex des Ereignisses mit diesem Übergang übereinstimmen; andernfalls gibt sie „ false “ zurück.

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

Umsetzt: ` QAbstractTransition::onTransition(QEvent *event)`.

const QObject *QSignalTransition::senderObject() const

Gibt das Senderobjekt zurück, das diesem Signalübergang zugeordnet ist.

Hinweis: Getter -Funktion für die Eigenschaft `senderObject`.

Siehe auch „ setSenderObject()“.

[private signal] void QSignalTransition::senderObjectChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ senderObject “ geändert wird.

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Hinweis: Notifier -Signal für die Eigenschaft „ senderObject “.

Siehe auch „ QSignalTransition::senderObject “.

void QSignalTransition::setSenderObject(const QObject *sender)

Legt das mit diesem Signalübergang verknüpfte Objekt „ sender “ fest.

Hinweis: Setter -Funktion für die Eigenschaft „ senderObject “.

Siehe auch senderObject().

void QSignalTransition::setSignal(const QByteArray &signal)

Legt die mit diesem Signalübergang verbundene Eigenschaft „ signal “ fest.

Hinweis: Setter -Funktion für die Eigenschaft „ signal “.

Siehe auch „ signal()“.

QByteArray QSignalTransition::signal() const

Gibt das Signal zurück, das diesem Signalübergang zugeordnet ist.

Hinweis: Getter -Funktion für die Eigenschaft „signal“.

Siehe auch „ setSignal()“.

[private signal] void QSignalTransition::signalChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „signal“ geändert wird.

Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann jedoch nicht vom Benutzer ausgelöst werden.

Hinweis: Notifier -Signal für die Eigenschaft „ signal “.

Siehe auch „ QSignalTransition::signal “.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.