Auf dieser Seite

QAbstractTransition Class

Die Klasse „QAbstractTransition“ ist die Basisklasse für Übergänge zwischen „ QAbstractState “-Objekten. Mehr...

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

QEventTransition und QSignalTransition

Öffentliche Typen

enum TransitionType { ExternalTransition, InternalTransition }

Eigenschaften

Öffentliche Funktionen

QAbstractTransition(QState *sourceState = nullptr)
virtual ~QAbstractTransition()
void addAnimation(QAbstractAnimation *animation)
QList<QAbstractAnimation *> animations() const
QBindable<QAbstractTransition::TransitionType> bindableTransitionType()
QStateMachine *machine() const
void removeAnimation(QAbstractAnimation *animation)
void setTargetState(QAbstractState *target)
void setTargetStates(const QList<QAbstractState *> &targets)
void setTransitionType(QAbstractTransition::TransitionType type)
QState *sourceState() const
QAbstractState *targetState() const
QList<QAbstractState *> targetStates() const
QAbstractTransition::TransitionType transitionType() const

Signale

Geschützte Funktionen

virtual bool eventTest(QEvent *event) = 0
virtual void onTransition(QEvent *event) = 0

Neu implementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Ausführliche Beschreibung

Die Klasse `QAbstractTransition` ist die abstrakte Basisklasse für Übergänge zwischen Zuständen (Objekte vom Typ `QAbstractState `) eines ` QStateMachine`. `QAbstractTransition` ist Teil des „Qt State Machine “-Frameworks.

Die Funktion ` sourceState()` gibt die Quelle des Übergangs zurück. Die Funktion ` targetStates()` gibt die Ziele des Übergangs zurück. Die Funktion ` machine()` gibt die Zustandsmaschine zurück, zu der der Übergang gehört.

Das Signal „ triggered()“ wird ausgegeben, wenn der Übergang ausgelöst wurde.

Übergänge können das Abspielen von Animationen auslösen. Verwenden Sie die Funktion „ addAnimation()“, um dem Übergang eine Animation hinzuzufügen.

Unterklassen

Die Funktion ` eventTest()` wird von der Zustandsmaschine aufgerufen, um zu bestimmen, ob ein Ereignis den Übergang auslösen soll. In Ihrer Neuimplementierung prüfen Sie in der Regel den Ereignistyp, wandeln das Ereignisobjekt in den entsprechenden Typ um und überprüfen, ob eine oder mehrere Eigenschaften des Ereignisses Ihren Kriterien entsprechen.

Die Funktion ` onTransition()` wird aufgerufen, wenn der Übergang ausgelöst wird; implementieren Sie diese Funktion neu, um eine benutzerdefinierte Verarbeitung für den Übergang durchzuführen.

Dokumentation zu Mitgliedstypen

enum QAbstractTransition::TransitionType

Diese Enumeration legt die Art des Übergangs fest. Standardmäßig handelt es sich um einen externen Übergang.

KonstanteWertBeschreibung
QAbstractTransition::ExternalTransition0Jeder Zustand, der der Quellzustand eines Übergangs ist (bei dem es sich nicht um einen Übergang ohne Ziel handelt), wird verlassen und bei Bedarf wieder betreten.
QAbstractTransition::InternalTransition1Wenn der Zielzustand eines Übergangs ein Unterzustand eines zusammengesetzten Zustands ist und dieser zusammengesetzte Zustand der Quellzustand ist, verlässt ein interner Übergang den Quellzustand nicht.

Siehe auch „ QAbstractTransition::transitionType “.

Eigenschaftsdokumentation

[read-only] sourceState : QState*

Diese Eigenschaft enthält den Quellzustand (übergeordneten Zustand) dieses Übergangs

Zugriffsfunktionen:

QState *sourceState() const

targetState : QAbstractState*

Diese Eigenschaft enthält den Zielzustand dieses Übergangs

Wenn ein Übergang keinen Zielzustand hat, kann der Übergang zwar dennoch ausgelöst werden, dies führt jedoch nicht zu einer Änderung der Konfiguration der Zustandsmaschine (d. h., der aktuelle Zustand wird nicht verlassen und erneut betreten).

Zugriffsfunktionen:

QAbstractState *targetState() const
void setTargetState(QAbstractState *target)

Notifier-Signal:

void targetStateChanged()[see note below]

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

targetStates : QList<QAbstractState*>

Diese Eigenschaft enthält die Zielzustände dieses Übergangs

Wenn mehrere Zustände angegeben sind, müssen alle Nachkommen desselben Zustands einer parallelen Gruppe sein.

Zugriffsfunktionen:

QList<QAbstractState *> targetStates() const
void setTargetStates(const QList<QAbstractState *> &targets)

Benachrichtigungssignal:

void targetStatesChanged()[see note below]

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

[bindable] transitionType : TransitionType

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

Gibt an, ob es sich bei diesem Übergang um einen internen oder einen externen Übergang handelt.

Interne und externe Übergänge verhalten sich gleich, außer im Fall eines Übergangs, dessen Quellzustand ein zusammengesetzter Zustand ist und dessen Ziel(e) ein Nachkomme des Quellzustands ist. In einem solchen Fall verlässt ein interner Übergang seinen Quellzustand nicht und kehrt auch nicht dorthin zurück, während ein externer Übergang dies tut.

Standardmäßig handelt es sich um einen externen Übergang.

Zugriffsfunktionen:

QAbstractTransition::TransitionType transitionType() const
void setTransitionType(QAbstractTransition::TransitionType type)

Dokumentation zu den Mitgliedsfunktionen

QAbstractTransition::QAbstractTransition(QState *sourceState = nullptr)

Erstellt ein neues QAbstractTransition-Objekt mit dem angegebenen „ sourceState “.

[virtual noexcept] QAbstractTransition::~QAbstractTransition()

Macht diesen Übergang zunichte.

void QAbstractTransition::addAnimation(QAbstractAnimation *animation)

Fügt die angegebene „ animation “ zu diesem Übergang hinzu. Der Übergang übernimmt keine Verantwortung für die Animation.

Siehe auch „ removeAnimation()“ und „ animations()“.

QList<QAbstractAnimation *> QAbstractTransition::animations() const

Gibt die Liste der mit diesem Übergang verknüpften Animationen zurück oder eine leere Liste, falls keine Animationen vorhanden sind.

Siehe auch ` addAnimation()`.

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

Implementiert: ` QObject::event(QEvent *e)`.

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

Diese Funktion wird aufgerufen, um festzustellen, ob das angegebene Ereignis „ event “ diesen Übergang auslösen soll. Implementieren Sie diese Funktion neu und geben Sie „true“ zurück, wenn das Ereignis den Übergang auslösen soll; andernfalls geben Sie „false“ zurück.

QStateMachine *QAbstractTransition::machine() const

Gibt die Zustandsmaschine zurück, zu der dieser Übergang gehört, oder „ nullptr “, falls der Übergang nicht Teil einer Zustandsmaschine ist.

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

Diese Funktion wird aufgerufen, wenn der Übergang ausgelöst wird. Der übergebene Parameter „ event “ gibt an, was den Übergang ausgelöst hat. Implementieren Sie diese Funktion neu, um beim Auslösen des Übergangs eine benutzerdefinierte Verarbeitung durchzuführen.

void QAbstractTransition::removeAnimation(QAbstractAnimation *animation)

Entfernt die angegebene „ animation “ aus diesem Übergang.

Siehe auch „ addAnimation()“.

void QAbstractTransition::setTargetState(QAbstractState *target)

Legt den Status „ target “ dieses Übergangs fest.

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

Siehe auch „ targetState()“.

void QAbstractTransition::setTargetStates(const QList<QAbstractState *> &targets)

Legt die Zielzustände dieses Übergangs auf die angegebene „ targets “ fest.

Hinweis: Setter -Funktion für die Eigenschaft ` targetStates`.

Siehe auch ` targetStates()`.

void QAbstractTransition::setTransitionType(QAbstractTransition::TransitionType type)

Legt den Typ des Übergangs auf „ type “ fest.

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

Siehe auch „ transitionType()“.

QState *QAbstractTransition::sourceState() const

Gibt den Quellzustand dieses Übergangs zurück oder „ nullptr “, falls dieser Übergang keinen Quellzustand hat.

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

QAbstractState *QAbstractTransition::targetState() const

Gibt den Zielzustand dieses Übergangs zurück oder „ nullptr “, falls der Übergang kein Ziel hat.

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

Siehe auch „ setTargetState()“.

[private signal] void QAbstractTransition::targetStateChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ targetState “ 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 „ targetState “.

Siehe auch „ QAbstractTransition::targetState “.

QList<QAbstractState *> QAbstractTransition::targetStates() const

Gibt die Zielzustände dieses Übergangs zurück oder eine leere Liste, falls dieser Übergang keine Zielzustände hat.

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

Siehe auch „ setTargetStates()“.

[private signal] void QAbstractTransition::targetStatesChanged()

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ targetStates “ 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 „ targetStates “.

Siehe auch „ QAbstractTransition::targetStates “.

QAbstractTransition::TransitionType QAbstractTransition::transitionType() const

Gibt den Typ des Übergangs zurück.

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

Siehe auch „ setTransitionType()“.

[private signal] void QAbstractTransition::triggered()

Dieses Signal wird ausgelöst, wenn der Übergang ausgelöst wurde (nachdem „ onTransition()“ aufgerufen wurde).

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

© 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.