QAbstractTransition Class
Die Klasse QAbstractTransition ist die Basisklasse für Übergänge zwischen QAbstractState Objekten. Mehr...
Kopfzeile: | #include <QAbstractTransition> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS StateMachine) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
qmake: | QT += statemachine |
Vererbt: | QObject |
Vererbt von: |
Öffentliche Typen
enum | TransitionType { ExternalTransition, InternalTransition } |
Eigenschaften
- sourceState : QState* const
- targetState : QAbstractState*
- targetStates : QList<QAbstractState*>
- transitionType : TransitionType
Ö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
void | targetStateChanged() |
void | targetStatesChanged() |
void | triggered() |
Geschützte Funktionen
virtual bool | eventTest(QEvent *event) = 0 |
virtual void | onTransition(QEvent *event) = 0 |
Reimplementierte geschützte Funktionen
virtual bool | event(QEvent *e) override |
Detaillierte Beschreibung
Die Klasse QAbstractTransition ist die abstrakte Basisklasse für Übergänge zwischen Zuständen (QAbstractState Objekte) 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 den Zustandsautomaten zurück, zu dem der Übergang gehört.
Das Signal triggered() wird ausgegeben, wenn der Übergang ausgelöst worden ist.
Übergänge können dazu führen, dass Animationen abgespielt werden. Verwenden Sie die Funktion addAnimation(), um dem Übergang eine Animation hinzuzufügen.
Unterklassenbildung
Die Funktion eventTest() wird von der Zustandsmaschine aufgerufen, um festzustellen, ob ein Ereignis den Übergang auslösen soll. In Ihrer Neuimplementierung prüfen Sie typischerweise den Ereignistyp und wandeln das Ereignisobjekt in den richtigen Typ um und prüfen, ob eine oder mehrere Eigenschaften des Ereignisses Ihre Kriterien erfüllen.
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 der Mitgliedstypen
enum QAbstractTransition::TransitionType
Diese Aufzählung gibt die Art des Übergangs an. Standardmäßig ist der Typ ein externer Übergang.
Konstante | Wert | Beschreibung |
---|---|---|
QAbstractTransition::ExternalTransition | 0 | Jeder Zustand, der der Ausgangszustand eines Übergangs ist (der kein zielloser Übergang ist), wird verlassen und bei Bedarf wieder betreten. |
QAbstractTransition::InternalTransition | 1 | Wenn der Zielzustand eines Übergangs ein Unterzustand eines zusammengesetzten Zustands ist und dieser zusammengesetzte Zustand der Ausgangszustand ist, verlässt ein interner Übergang den Ausgangszustand nicht. |
Siehe auch QAbstractTransition::transitionType.
Dokumentation der Eigenschaft
[read-only]
sourceState : QState* const
Diese Eigenschaft enthält den Ausgangszustand (parent) dieses Übergangs
Zugriffsfunktionen:
QState * | sourceState() const |
targetState : QAbstractState*
Diese Eigenschaft enthält den Zielzustand dieses Übergangs
Wenn eine Transition keinen Zielzustand hat, kann die Transition trotzdem ausgelöst werden, aber dies führt nicht zu einer Änderung der Konfiguration des Zustandsautomaten (d.h. der aktuelle Zustand wird nicht verlassen und wieder betreten).
Zugriffsfunktionen:
QAbstractState * | targetState() const |
void | setTargetState(QAbstractState *target) |
Melder-Signal:
void | targetStateChanged() | [see note below] |
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, aber nicht vom Benutzer ausgesendet werden.
targetStates : QList<QAbstractState*>
Diese Eigenschaft enthält die Zielzustände dieses Übergangs
Wenn mehrere Zustände angegeben werden, müssen alle Nachkommen desselben Parallelgruppenzustands sein.
Zugriffsfunktionen:
QList<QAbstractState *> | targetStates() const |
void | setTargetStates(const QList<QAbstractState *> &targets) |
Melder-Signal:
void | targetStatesChanged() | [see note below] |
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, aber nicht vom Benutzer ausgesendet werden.
[bindable]
transitionType : TransitionType
Hinweis: Diese Eigenschaft unterstützt QProperty Bindungen.
gibt an, ob dieser Übergang ein interner oder ein externer Übergang ist.
Interne und externe Übergänge verhalten sich gleich, außer im Fall eines Übergangs, dessen Ausgangszustand ein zusammengesetzter Zustand ist und dessen Ziel(e) ein Nachkomme des Ausgangszustandes ist. In einem solchen Fall verlässt ein interner Übergang seinen Ausgangszustand nicht und tritt nicht wieder ein, während ein externer Übergang dies tut.
Standardmäßig ist der Typ ein externer Übergang.
Dokumentation der Mitgliedsfunktionen
QAbstractTransition::QAbstractTransition(QState *sourceState = nullptr)
Konstruiert ein neues QAbstractTransition-Objekt mit dem angegebenen sourceState.
[virtual noexcept]
QAbstractTransition::~QAbstractTransition()
Zerstört diesen Übergang.
void QAbstractTransition::addAnimation(QAbstractAnimation *animation)
Fügt die angegebene animation zu diesem Übergang hinzu. Der Übergang übernimmt nicht das Eigentum an der Animation.
Siehe auch removeAnimation() und animations().
QList<QAbstractAnimation *> QAbstractTransition::animations() const
Gibt die Liste der Animationen zurück, die mit diesem Übergang verbunden sind, oder eine leere Liste, wenn er keine Animationen hat.
Siehe auch addAnimation().
[override virtual protected]
bool QAbstractTransition::event(QEvent *e)
Reimplements: QObject::event(QEvent *e).
[pure virtual protected]
bool QAbstractTransition::eventTest(QEvent *event)
Diese Funktion wird aufgerufen, um festzustellen, ob das angegebene event diesen Übergang auslösen soll. Reimplementieren Sie diese Funktion 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 den Zustandsautomaten zurück, zu dem dieser Übergang gehört, oder nullptr
, wenn der Übergang nicht Teil eines Zustandsautomaten ist.
[pure virtual protected]
void QAbstractTransition::onTransition(QEvent *event)
Diese Funktion wird aufgerufen, wenn der Übergang ausgelöst wird. Die angegebene event ist die Ursache für die Auslösung des Übergangs. Reimplementieren Sie diese Funktion, um eine benutzerdefinierte Verarbeitung durchzuführen, wenn der Übergang ausgelöst wird.
void QAbstractTransition::removeAnimation(QAbstractAnimation *animation)
Entfernt die angegebene animation aus diesem Übergang.
Siehe auch addAnimation().
void QAbstractTransition::setTargetState(QAbstractState *target)
Setzt den Zustand target dieses Übergangs.
Hinweis: Setter-Funktion für die Eigenschaft targetState.
Siehe auch targetState().
void QAbstractTransition::setTargetStates(const QList<QAbstractState *> &targets)
Setzt die Zielzustände dieses Übergangs auf den angegebenen targets.
Hinweis: Setter-Funktion für die Eigenschaft targetStates.
Siehe auch targetStates().
void QAbstractTransition::setTransitionType(QAbstractTransition::TransitionType type)
Setzt den Typ des Übergangs auf type.
Hinweis: Setter-Funktion für die Eigenschaft transitionType.
Siehe auch transitionType().
QState *QAbstractTransition::sourceState() const
Gibt den Quellzustand dieses Übergangs zurück, oder nullptr
, wenn 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
, wenn der Übergang kein Ziel hat.
Hinweis: Getter-Funktion für die Eigenschaft targetState.
Siehe auch setTargetState().
[private signal]
void QAbstractTransition::targetStateChanged()
Dieses Signal wird ausgesendet, wenn die Eigenschaft targetState geändert wird.
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann aber nicht vom Benutzer ausgegeben werden.
Hinweis: Benachrichtigungssignal für die Eigenschaft targetState.
Siehe auch QAbstractTransition::targetState.
QList<QAbstractState *> QAbstractTransition::targetStates() const
Liefert die Zielzustände dieses Übergangs oder eine leere Liste, wenn 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 ausgesendet, wenn die Eigenschaft targetStates geändert wird.
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, kann aber nicht vom Benutzer ausgegeben werden.
Hinweis: Benachrichtigungssignal 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 ausgesendet, wenn der Übergang ausgelöst wurde (nachdem onTransition() aufgerufen wurde).
Hinweis: Dies ist ein privates Signal. Es kann in Signalverbindungen verwendet werden, aber nicht vom Benutzer ausgegeben werden.
© 2025 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.