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
- senderObject : const QObject*
- signal : QByteArray
Ö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
| void | senderObjectChanged() |
| void | signalChanged() |
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:
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.