Auf dieser Seite

QScxmlStateMachine Class

Die Klasse „QScxmlStateMachine“ bietet eine Schnittstelle zu den aus SCXML-Dateien erstellten Zustandsmaschinen. Mehr...

Header: #include <QScxmlStateMachine>
CMake: find_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmake: QT += scxml
In QML: ScxmlStateMachine
Erbt von: QObject

Eigenschaften

Öffentliche Funktionen

QStringList activeStateNames(bool compress = true) const
QBindable<QScxmlDataModel *> bindableDataModel()
QBindable<QVariantMap> bindableInitialValues()
QBindable<bool> bindableInitialized() const
QBindable<QList<QScxmlInvokableService *>> bindableInvokedServices()
QBindable<QScxmlCompiler::Loader *> bindableLoader()
QBindable<QScxmlTableData *> bindableTableData()
void cancelDelayedEvent(const QString &sendId)
QMetaObject::Connection connectToEvent(const QString &scxmlEventSpec, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
QMetaObject::Connection connectToEvent(const QString &scxmlEventSpec, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
QMetaObject::Connection connectToEvent(const QString &scxmlEventSpec, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
QMetaObject::Connection connectToState(const QString &scxmlStateName, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
QMetaObject::Connection connectToState(const QString &scxmlStateName, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)
QMetaObject::Connection connectToState(const QString &scxmlStateName, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)
QScxmlDataModel *dataModel() const
QVariantMap initialValues()
QList<QScxmlInvokableService *> invokedServices() const
bool isActive(const QString &scxmlStateName) const
bool isDispatchableTarget(const QString &target) const
bool isInitialized() const
bool isInvoked() const
bool isRunning() const
QScxmlCompiler::Loader *loader() const
QString name() const
QList<QScxmlError> parseErrors() const
QString sessionId() const
void setDataModel(QScxmlDataModel *model)
void setInitialValues(const QVariantMap &initialValues)
void setLoader(QScxmlCompiler::Loader *loader)
void setRunning(bool running)
void setTableData(QScxmlTableData *tableData)
QStringList stateNames(bool compress = true) const
void submitEvent(QScxmlEvent *event)
void submitEvent(const QString &eventName)
void submitEvent(const QString &eventName, const QVariant &data)
QScxmlTableData *tableData() const

Öffentliche Slots

bool init()
void start()
void stop()

Signale

void dataModelChanged(QScxmlDataModel *model)
void finished()
void initialValuesChanged(const QVariantMap &initialValues)
void initializedChanged(bool initialized)
void invokedServicesChanged(const QList<QScxmlInvokableService *> &invokedServices)
void loaderChanged(QScxmlCompiler::Loader *loader)
void log(const QString &label, const QString &msg)
void reachedStableState()
void runningChanged(bool running)
void tableDataChanged(QScxmlTableData *tableData)

Statische öffentliche Mitglieder

QScxmlStateMachine *fromData(QIODevice *data, const QString &fileName = QString())
QScxmlStateMachine *fromFile(const QString &fileName)
std::function<void (bool)> onEntry(Functor functor)
std::function<void (bool)> onEntry(const QObject *receiver, const char *method)
std::function<void (bool)> onEntry(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)
std::function<void (bool)> onExit(Functor functor)
std::function<void (bool)> onExit(const QObject *receiver, const char *method)
std::function<void (bool)> onExit(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)

Geschützte Funktionen

bool isActive(int stateIndex) const

Ausführliche Beschreibung

QScxmlStateMachine ist eine Implementierung des State Chart XML (SCXML).

Alle in der SCXML-Datei definierten Zustände sind als Eigenschaften von QScxmlStateMachine zugänglich. Diese Eigenschaften sind boolesche Werte und geben an, ob der Zustand aktiv oder inaktiv ist.

Hinweis: Die QScxmlStateMachine benötigt eine „ QEventLoop “, um korrekt zu funktionieren. Die Ereignisschleife wird verwendet, um das Attribut „ delay “ für Ereignisse zu implementieren und die Verarbeitung einer Zustandsmaschine zu planen, wenn Ereignisse von verschachtelten (oder übergeordneten) Zustandsmaschinen empfangen werden.

Dokumentation zu den Eigenschaften

[bindable] dataModel : QScxmlDataModel*

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

Diese Eigenschaft enthält das für diese Zustandsmaschine zu verwendende Datenmodell.

SCXML-Datenmodelle werden in der SCXML-Spezifikation – 5 „Datenmodell und Datenmanipulation“ beschrieben. Weitere Informationen zu unterstützten Datenmodellen finden Sie unter „SCXML-Konformität“.

Das Ändern des Datenmodells, nachdem die Zustandsmaschine „ initialized “ wurde, ist im SCXML-Standard nicht festgelegt und führt zu undefiniertem Verhalten.

Zugriffsfunktionen:

QScxmlDataModel *dataModel() const
void setDataModel(QScxmlDataModel *model)

Notifier-Signal:

void dataModelChanged(QScxmlDataModel *model)

Siehe auch „ QScxmlDataModel “, „ QScxmlNullDataModel “ und „ QScxmlCppDataModel “.

[bindable] initialValues : QVariantMap

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

Diese Eigenschaft enthält die Anfangswerte, die zum Einrichten des Datenmodells verwendet werden sollen.

Zugriffsfunktionen:

QVariantMap initialValues()
void setInitialValues(const QVariantMap &initialValues)

Benachrichtigungssignal:

void initialValuesChanged(const QVariantMap &initialValues)

Siehe auch „ QScxmlStateMachine::init()“ und „ QScxmlDataModel “.

[bindable read-only] initialized : bool

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

Diese Eigenschaft gibt an, ob die Zustandsmaschine initialisiert wurde.

Sie ist „ true “, wenn die Zustandsmaschine initialisiert wurde, andernfalls „ false “.

Zugriffsfunktionen:

bool isInitialized() const

Notifier-Signal:

void initializedChanged(bool initialized)

Siehe auch „ QScxmlStateMachine::init()“ und „ QScxmlDataModel “.

[read-only] invoked : const bool

Diese Eigenschaft gibt an, ob die Zustandsmaschine von einer übergeordneten Zustandsmaschine aufgerufen wurde.

true wenn die Zustandsmaschine als Dienst mit dem Element „ <invoke> “ gestartet wurde, andernfalls „ false “.

Zugriffsfunktionen:

bool isInvoked() const

[bindable read-only] invokedServices : QList<QScxmlInvokableService*>

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

Diese Eigenschaft enthält eine Liste der SCXML-Dienste, die von der Hauptzustandsmaschine (möglicherweise rekursiv) aufgerufen wurden.

Zugriffsfunktionen:

QList<QScxmlInvokableService *> invokedServices() const

Notifier-Signal:

void invokedServicesChanged(const QList<QScxmlInvokableService *> &invokedServices)

[bindable] loader : QScxmlCompiler::Loader*

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

Diese Eigenschaft enthält den Loader, der derzeit zum Auflösen und Laden von URIs für die Zustandsmaschine verwendet wird.

Zugriffsfunktionen:

QScxmlCompiler::Loader *loader() const
void setLoader(QScxmlCompiler::Loader *loader)

Notifier-Signal:

void loaderChanged(QScxmlCompiler::Loader *loader)

[read-only] name : const QString

Diese Eigenschaft enthält den Namen der Zustandsmaschine, wie er durch das „name“-Attribut des Tags „ <scxml> “ festgelegt wurde.

Zugriffsfunktionen:

QString name() const

[read-only] parseErrors : const QList<QScxmlError>

Diese Eigenschaft enthält die Liste der Parsing-Fehler, die beim Erstellen einer Zustandsmaschine aus einer SCXML-Datei aufgetreten sind.

Zugriffsfunktionen:

QList<QScxmlError> parseErrors() const

running : bool

Diese Eigenschaft enthält den aktuellen Zustand dieser Zustandsmaschine

Zugriffsfunktionen:

bool isRunning() const
void setRunning(bool running)

Benachrichtigungssignal:

void runningChanged(bool running)

Siehe auch ` start()`.

[read-only] sessionId : const QString

Diese Eigenschaft enthält die Sitzungs-ID der aktuellen Zustandsmaschine.

Die Sitzungs-ID wird für die Nachrichtenweiterleitung zwischen über- und untergeordneten Zustandsmaschinen verwendet. Wird eine Zustandsmaschine durch ein ` <invoke> `-Element gestartet, wird bei jedem von ihr gesendeten Ereignis das Feld ` invokeid ` auf die Sitzungs-ID gesetzt. Die Zustandsmaschine verwendet den Ursprung eines Ereignisses (der durch das Attribut „target“ oder „targetexpr“ in einem „ <send> “-Element festgelegt wird), um Nachrichten an die richtige untergeordnete Zustandsmaschine weiterzuleiten.

Zugriffsfunktionen:

QString sessionId() const

Siehe auch „ QScxmlEvent::invokeId()“.

[bindable] tableData : QScxmlTableData*

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

Diese Eigenschaft enthält die Tabellendaten, die bei der Generierung von C++ aus einer SCXML-Datei verwendet werden.

Die Klasse, die die Zustandsmaschine implementiert, verwendet diese Eigenschaft, um die generierten Tabellendaten zuzuweisen. Die Zustandsmaschine übernimmt nicht die Eigentumsrechte an den Tabellendaten.

Zugriffsfunktionen:

QScxmlTableData *tableData() const
void setTableData(QScxmlTableData *tableData)

Notifier-Signal:

void tableDataChanged(QScxmlTableData *tableData)

Dokumentation der Mitgliedsfunktionen

[invokable] QStringList QScxmlStateMachine::activeStateNames(bool compress = true) const

Ruft eine Liste der Namen aller aktiven Zustände ab.

Wenn ein Zustand aktiv ist, sind per Definition auch alle seine übergeordneten Zustände aktiv. Wenn ` compress ` auf ` true ` gesetzt ist (Standardeinstellung), werden die übergeordneten Zustände herausgefiltert und nur die Endzustände zurückgegeben. Wenn der Wert ` false` lautet, wird die vollständige Liste der aktiven Zustände zurückgegeben.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QScxmlStateMachine::cancelDelayedEvent(const QString &sendId)

Bricht ein verzögertes Ereignis mit dem angegebenen „ sendId “ ab.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)

template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)

Erstellt eine Verbindung der angegebenen ` type ` vom durch ` scxmlEventSpec ` spezifizierten Ereignis zu ` functor`, wobei es sich um einen Funktor oder eine Mitgliedsfunktion des optionalen Objekts ` context ` handeln kann.

Der „ functor “ des Empfängers muss ein „ QScxmlEvent “ als Parameter annehmen.

Im Gegensatz zu Ereignisspezifikationen in SCXML-Dokumenten sind Leerzeichen im „ scxmlEventSpec “ hier nicht zulässig. Um eine Verbindung zu mehreren Ereignissen mit unterschiedlichen Präfixen herzustellen, muss „ connectToEvent()“ mehrfach aufgerufen werden.

Gibt ein Handle für die Verbindung zurück, das später zum Trennen der Verbindung verwendet werden kann.

QMetaObject::Connection QScxmlStateMachine::connectToEvent(const QString &scxmlEventSpec, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)

Erstellt eine Verbindung des angegebenen ` type ` vom durch ` scxmlEventSpec ` angegebenen Ereignis zum ` method ` im Objekt ` receiver `. Die Methode ` method ` des Empfängers kann einen ` QScxmlEvent ` als Parameter entgegennehmen. Beispiel:

void mySlot(const QScxmlEvent &event);

Im Gegensatz zu Ereignisspezifikationen in SCXML-Dokumenten sind Leerzeichen im „ scxmlEventSpec “ hier nicht zulässig. Um eine Verbindung zu mehreren Ereignissen mit unterschiedlichen Präfixen herzustellen, muss connectToEvent() mehrmals aufgerufen werden.

Gibt ein Handle für die Verbindung zurück, das später zum Trennen der Verbindung verwendet werden kann.

template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)

template <typename Functor> QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, const QObject *context, Functor &&functor, Qt::ConnectionType type = Qt::AutoConnection)

Erstellt eine Verbindung des angegebenen type vom durch scxmlStateName festgelegten Zustand zu functor, wobei es sich um einen Funktor oder eine Mitgliedsfunktion des optionalen context -Objekts handeln kann.

Der „ functor “ des Empfängers muss ein boolesches Argument annehmen, das angibt, ob der verbundene Zustand aktiv oder inaktiv wurde.

Gibt ein Handle für die Verbindung zurück, das später zum Trennen der Verbindung verwendet werden kann.

QMetaObject::Connection QScxmlStateMachine::connectToState(const QString &scxmlStateName, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection)

Erstellt eine Verbindung der angegebenen „ type “ vom durch „ scxmlStateName “ identifizierten Zustand zum „ method “ im Objekt „ receiver “. Die Methode „ method “ des Empfängers kann ein boolesches Argument entgegennehmen, das angibt, ob der verbundene Zustand aktiv oder inaktiv geworden ist. Beispiel:

void mySlot(bool active);

Gibt ein Handle für die Verbindung zurück, das später zum Trennen der Verbindung verwendet werden kann.

QScxmlDataModel *QScxmlStateMachine::dataModel() const

Gibt das von der Zustandsmaschine verwendete Datenmodell zurück.

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

Siehe auch „ setDataModel()“.

[signal] void QScxmlStateMachine::finished()

Dieses Signal wird ausgesendet, wenn die Zustandsmaschine einen Endzustand der obersten Ebene erreicht.

Siehe auch „ running “.

[static] QScxmlStateMachine *QScxmlStateMachine::fromData(QIODevice *data, const QString &fileName = QString())

Erstellt eine Zustandsmaschine, indem aus der unter data angegebenen SCXML-Datei ( QIODevice ) gelesen wird.

Diese Methode gibt immer eine Zustandsmaschine zurück. Treten beim Einlesen der SCXML-Datei ` fileName` Fehler auf, kann die Zustandsmaschine nicht gestartet werden. Die Fehler können durch Aufruf der Methode ` parseErrors()` abgerufen werden.

Siehe auch parseErrors().

[static] QScxmlStateMachine *QScxmlStateMachine::fromFile(const QString &fileName)

Erstellt eine Zustandsmaschine aus der SCXML-Datei, die mit „ fileName “ angegeben wurde.

Diese Methode gibt immer eine Zustandsmaschine zurück. Wenn beim Einlesen der SCXML-Datei Fehler auftreten, kann die Zustandsmaschine nicht gestartet werden. Die Fehler können durch Aufruf der Methode ` parseErrors()` abgerufen werden.

Siehe auch ` parseErrors()`.

[slot] bool QScxmlStateMachine::init()

Initialisiert die Zustandsmaschine.

Die Initialisierung der Zustandsmaschine umfasst den Aufruf von ` QScxmlDataModel::setup()`, das Festlegen der Anfangswerte für die Elemente von ` <data> ` sowie das Ausführen aller ` <script> `-Tags des ` <scxml> `-Tags. Die Anfangswerte der Daten werden aus der Eigenschaft ` initialValues ` übernommen.

Gibt „ false “ zurück, wenn Parsing-Fehler auftreten oder einer der Initialisierungsschritte fehlschlägt. Andernfalls wird „ true “ zurückgegeben.

[invokable] bool QScxmlStateMachine::isActive(const QString &scxmlStateName) const

Gibt „ true “ zurück, wenn der durch „ scxmlStateName “ angegebene Zustand aktiv ist, andernfalls „ false “.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[protected] bool QScxmlStateMachine::isActive(int stateIndex) const

Gibt „ true “ zurück, wenn der Zustand mit der ID „ stateIndex “ aktiv ist.

Diese Methode ist Teil der Schnittstelle zur kompilierten Darstellung von SCXML-Zustandsmaschinen. Sie sollte nur intern und von aus SCXML-Dokumenten kompilierten Zustandsmaschinen verwendet werden.

[invokable] bool QScxmlStateMachine::isDispatchableTarget(const QString &target) const

Gibt „ true “ zurück, wenn eine Nachricht an „ target “ von dieser Zustandsmaschine versendet werden kann.

Gültige Ziele sind:

  • #_parent die übergeordnete Zustandsmaschine, wenn die aktuelle Zustandsmaschine durch <invoke>
  • #_internal für die aktuelle Zustandsmaschine
  • #_scxml_sessionid, wobei ` sessionid ` die Sitzungs-ID der aktuellen Zustandsmaschine ist
  • #_servicename, wobei ` servicename ` die ID oder der Name eines Dienstes ist, der von dieser Zustandsmaschine mit ` <invoke> ` gestartet wurde

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

bool QScxmlStateMachine::isRunning() const

Gibt „ true “ zurück, wenn die Zustandsmaschine läuft, andernfalls „ false “.

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

Siehe auch „ setRunning()“ und „ runningChanged()“.

[signal] void QScxmlStateMachine::log(const QString &label, const QString &msg)

Dieses Signal wird ausgelöst, wenn im SCXML ein <log> -Tag verwendet wird. „ label “ ist der Wert des Attributs „label“ des <log> -Tags. „ msg “ ist der Wert des ausgewerteten Attributs „expr“ des <log> -Tags. Ist kein „expr“-Attribut vorhanden, wird eine leere Zeichenkette zurückgegeben.

[static] template <typename Functor> std::function<void (bool)> QScxmlStateMachine::onEntry(Functor functor)

Gibt einen Funktor zurück, der ein boolesches Argument entgegennimmt und den angegebenen ` functor ` aufruft, wenn dieses Argument ` true` ist. Der angegebene ` functor ` darf keine Argumente entgegennehmen.

Dies ist nützlich, um Handler für ` connectToState()` zu umschließen, die nur ausgeführt werden sollen, wenn der Zustand erreicht wird.

[static] std::function<void (bool)> QScxmlStateMachine::onEntry(const QObject *receiver, const char *method)

Gibt einen Funktor zurück, der ein boolesches Argument akzeptiert und die angegebene Methode ` method ` auf ` receiver ` mithilfe von ` QMetaObject::invokeMethod()` aufruft, sofern dieses Argument ` true ` ist und ` receiver ` noch nicht gelöscht wurde.

Die angegebene Funktion „ method “ darf keine Argumente akzeptieren. „ method “ ist der reine Methodenname, ohne die Umschreibungsfunktionen „ SIGNAL() “ oder „ SLOT() “.

Dies ist nützlich, um Handler für ` connectToState()` zu umschließen, die nur ausgeführt werden sollen, wenn der Zustand erreicht wird.

[static] template <typename PointerToMemberFunction> std::function<void (bool)> QScxmlStateMachine::onEntry(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)

Gibt einen Funktor zurück, der ein boolesches Argument entgegennimmt und die angegebene Funktion ` method ` auf ` receiver ` aufruft, sofern dieses Argument ` true ` ist und die Funktion ` receiver ` noch nicht gelöscht wurde. Die angegebene Funktion ` method ` darf keine Argumente entgegennehmen.

Dies ist nützlich, um Handler für ` connectToState()` zu umschließen, die nur ausgeführt werden sollen, wenn der Zustand erreicht wird.

[static] template <typename Functor> std::function<void (bool)> QScxmlStateMachine::onExit(Functor functor)

Gibt einen Funktor zurück, der ein boolesches Argument akzeptiert und den angegebenen functor aufruft, wenn dieses Argument den Wert „ false “ hat. Der angegebene functor darf keine Argumente akzeptieren.

Dies ist nützlich, um Handler für ` connectToState()` zu verpacken, die nur ausgeführt werden sollen, wenn der Zustand verlassen wird.

[static] std::function<void (bool)> QScxmlStateMachine::onExit(const QObject *receiver, const char *method)

Gibt einen Funktor zurück, der ein boolesches Argument akzeptiert und die angegebene Methode ` method ` auf ` receiver ` mithilfe von ` QMetaObject::invokeMethod()` aufruft, sofern dieses Argument ` false ` ist und ` receiver ` noch nicht gelöscht wurde.

Die angegebene Funktion ` method ` darf keine Argumente akzeptieren. ` method ` ist der reine Methodenname, nicht in `SIGNAL(...)` oder `SLOT(...)` eingeschlossen.

Dies ist nützlich, um Handler für connectToState() zu umschließen, die nur ausgeführt werden sollen, wenn der Zustand verlassen wird.

[static] template <typename PointerToMemberFunction> std::function<void (bool)> QScxmlStateMachine::onExit(const typename QtPrivate::FunctionPointer<PointerToMemberFunction>::Object *receiver, PointerToMemberFunction method)

Gibt einen Funktor zurück, der ein boolesches Argument akzeptiert und die angegebene Funktion „ method “ auf „ receiver “ aufruft, sofern dieses Argument „ false “ ist und die Funktion „ receiver “ noch nicht gelöscht wurde. Die angegebene Funktion „ method “ darf keine Argumente akzeptieren.

Dies ist nützlich, um Handler für ` connectToState()` zu umschließen, die nur ausgeführt werden sollen, wenn der Zustand verlassen wird.

[signal] void QScxmlStateMachine::reachedStableState()

Dieses Signal wird ausgegeben, wenn die Ereigniswarteschlange am Ende eines Makroschritts leer ist oder wenn ein Endzustand erreicht wurde.

[signal] void QScxmlStateMachine::runningChanged(bool running)

Dieses Signal wird ausgelöst, wenn die Eigenschaft „ running “ mit dem Argument „ running “ geändert wird.

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

void QScxmlStateMachine::setDataModel(QScxmlDataModel *model)

Legt das Datenmodell für diese Zustandsmaschine auf „ model “ fest. Zwischen Zustandsmaschinen und Modellen besteht eine 1:1-Beziehung. Nachdem das Modell einmal festgelegt wurde, kann es nicht mehr geändert werden. Alle weiteren Versuche, das Modell mit dieser Methode festzulegen, werden ignoriert.

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

Siehe auch „ dataModel()“.

void QScxmlStateMachine::setRunning(bool running)

Startet die Zustandsmaschine, wenn „ running “ den Wert „ true “ hat, oder stoppt sie andernfalls.

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

Siehe auch „ start()“, „ stop()“, „ isRunning()“ und „ runningChanged()“.

[slot] void QScxmlStateMachine::start()

Startet diese Zustandsmaschine. Wenn ein endgültiger Zustand der obersten Ebene erreicht wird, sendet die Maschine das Signal „ finished()“ aus.

Hinweis: Eine Zustandsmaschine läuft nicht ohne eine aktive Ereignisschleife, wie beispielsweise die mit „ QCoreApplication::exec()“ oder „ QApplication::exec()“ gestartete Hauptereignisschleife der Anwendung.

Hinweis: Der Aufruf von `start()` nach ` stop()` führt noch nicht zu einem vollständigen Zurücksetzen der Konfiguration; daher wird dringend davon abgeraten, dies zu tun.

Hinweis: Das Starten einer bereits fertiggestellten Maschine führt zu einer Warnung.

Siehe auch runningChanged(), setRunning(), stop() und finished().

[invokable] QStringList QScxmlStateMachine::stateNames(bool compress = true) const

Ruft eine Liste der Namen aller Bundesstaaten ab.

Wenn „ compress “ auf „ true “ gesetzt ist (Standard), werden Zustände, die untergeordnete Zustände enthalten, herausgefiltert und nur die Blattzustände zurückgegeben. Bei der Einstellung „ false “ wird die vollständige Liste aller Zustände zurückgegeben.

Die zurückgegebene Liste enthält keine Zustände von möglicherweise verschachtelten Zustandsmaschinen.

Hinweis: Die Reihenfolge der Zustandsnamen in der Liste entspricht der Reihenfolge, in der die Zustände im SCXML-Dokument vorkamen.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

[slot] void QScxmlStateMachine::stop()

Hält diese Zustandsmaschine an. Die Maschine führt keine weiteren Zustandsübergänge mehr aus. Ihre Eigenschaft „ running “ wird auf „ false “ gesetzt.

Siehe auch „ runningChanged()“, „ start()“ und „ setRunning()“.

[invokable] void QScxmlStateMachine::submitEvent(QScxmlEvent *event)

Übermittelt das SCXML-Ereignis „ event “ je nach Priorität des Ereignisses an die interne oder externe Ereigniswarteschlange.

Wenn eine Verzögerung festgelegt ist, wird das Ereignis zur Übermittlung in die Warteschlange gestellt, sobald die Zeitüberschreitung abgelaufen ist. Die Zustandsmaschine übernimmt die Verantwortung für „ event “ und löscht es nach der Verarbeitung.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe „ Q_INVOKABLE “.

[invokable] void QScxmlStateMachine::submitEvent(const QString &eventName)

Eine Hilfsmethode zum Erstellen und Senden eines externen Ereignisses mit dem angegebenen „ eventName “ als Namen.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML heraus aufgerufen werden. Siehe Q_INVOKABLE.

[invokable] void QScxmlStateMachine::submitEvent(const QString &eventName, const QVariant &data)

Eine Hilfsfunktion zum Erstellen und Senden eines externen Ereignisses mit dem angegebenen „ eventName “ als Namen und „ data “ als Nutzdaten.

Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.

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