Auf dieser Seite

QScxmlDataModel Class

Die Klasse „QScxmlDataModel“ ist die Basisklasse des Datenmodells für eine „ Qt SCXML “-Zustandsmaschine. Mehr...

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

QScxmlCppDataModel und QScxmlNullDataModel

Öffentliche Typen

Eigenschaften

Öffentliche Funktionen

QScxmlDataModel(QObject *parent = nullptr)
QBindable<QScxmlStateMachine *> bindableStateMachine()
virtual void evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual void evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) = 0
virtual void evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual bool evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual QString evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual QVariant evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual void evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual bool hasScxmlProperty(const QString &name) const = 0
virtual QVariant scxmlProperty(const QString &name) const = 0
virtual void setScxmlEvent(const QScxmlEvent &event) = 0
virtual bool setScxmlProperty(const QString &name, const QVariant &value, const QString &context) = 0
void setStateMachine(QScxmlStateMachine *stateMachine)
virtual bool setup(const QVariantMap &initialDataValues) = 0
QScxmlStateMachine *stateMachine() const

Signale

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Statische öffentliche Mitglieder

QScxmlDataModel *createScxmlDataModel(const QString &pluginKey)

Geschützte Funktionen

QScxmlDataModel(QScxmlDataModelPrivate &dd, QObject *parent = nullptr)

Ausführliche Beschreibung

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

Ein Datenmodell kann nur zu einer Zustandsmaschine gehören.

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

Dokumentation zu den Eigenschaften

[bindable] stateMachine : QScxmlStateMachine*

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

Diese Eigenschaft gibt die Zustandsmaschine an, zu der dieses Datenmodell gehört.

Ein Datenmodell kann nur zu einer einzigen Zustandsmaschine gehören, und eine Zustandsmaschine kann nur ein Datenmodell haben. Diese Beziehung muss eingerichtet werden, bevor die Zustandsmaschine gestartet wird. Durch das Festlegen dieser Eigenschaft für ein Datenmodell wird automatisch die entsprechende Eigenschaft „ dataModel “ für die „ stateMachine “ festgelegt.

Zugriffsfunktionen:

QScxmlStateMachine *stateMachine() const
void setStateMachine(QScxmlStateMachine *stateMachine)

Notifier-Signal:

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Dokumentation der Mitgliedsfunktionen

[explicit] QScxmlDataModel::QScxmlDataModel(QObject *parent = nullptr)

Erstellt ein neues Datenmodell mit dem übergeordneten Objekt „ parent “.

[explicit protected] QScxmlDataModel::QScxmlDataModel(QScxmlDataModelPrivate &dd, QObject *parent = nullptr)

Erstellt ein neues Datenmodell aus dem privaten Objekt „ dd “ mit dem übergeordneten Objekt „ parent “.

[static] QScxmlDataModel *QScxmlDataModel::createScxmlDataModel(const QString &pluginKey)

Erstellt ein Datenmodell aus einem Plugin, das durch einen „ pluginKey “ angegeben wird.

[pure virtual] void QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet die Zuweisung aus, auf die „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, oder auf „ true “, falls kein Fehler aufgetreten ist.

[pure virtual] void QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)

Führt die „foreach“-Schleife aus, auf die „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, oder auf „ true “, falls kein Fehler aufgetreten ist. „ body “ wird bei jeder Iteration ausgeführt.

[pure virtual] void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet die Initialisierung aus, auf die „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, oder auf „ true “, falls kein Fehler aufgetreten ist.

[pure virtual] bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet den ausführbaren Inhalt aus, auf den „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, oder auf „ true “, falls kein Fehler aufgetreten ist. Gibt das Ergebnis der Auswertung als booleschen Wert zurück.

[pure virtual] QString QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet den ausführbaren Inhalt aus, auf den „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, bzw. auf „ true “, falls kein Fehler aufgetreten ist. Gibt das Ergebnis der Auswertung als „ QString “ zurück.

[pure virtual] QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet den ausführbaren Inhalt aus, auf den „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, oder auf „ true “, falls kein Fehler aufgetreten ist. Gibt das Ergebnis der Auswertung als „ QVariant “ zurück.

[pure virtual] void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)

Wertet den ausführbaren Inhalt aus, auf den „ id “ verweist, und setzt „ ok “ auf „ false “, falls ein Fehler aufgetreten ist, bzw. auf „ true “, falls kein Fehler aufgetreten ist. Es wird erwartet, dass die Ausführung kein Ergebnis zurückgibt.

[pure virtual] bool QScxmlDataModel::hasScxmlProperty(const QString &name) const

Gibt „ true “ zurück, wenn eine Eigenschaft mit dem angegebenen „ name “ existiert, andernfalls „ false “.

[pure virtual] QVariant QScxmlDataModel::scxmlProperty(const QString &name) const

Gibt den Wert der Eigenschaft „ name “ zurück.

Siehe auch „ setScxmlProperty()“.

[pure virtual] void QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)

Legt den „ event “ fest, der bei der anschließenden Ausführung des ausführbaren Inhalts verwendet werden soll.

[pure virtual] bool QScxmlDataModel::setScxmlProperty(const QString &name, const QVariant &value, const QString &context)

Setzt den Wert „ value “ für die Eigenschaft „ name “.

„ context “ ist eine Zeichenfolge, die in Fehlermeldungen verwendet wird, um die Stelle in der SCXML-Datei anzugeben, an der der Fehler aufgetreten ist.

Gibt bei Erfolg „ true “ zurück oder „ false “, falls ein Fehler aufgetreten ist.

Siehe auch scxmlProperty().

void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)

Setzt die Zustandsmaschine, zu der dieses Modell gehört, auf „ stateMachine “. Zwischen Zustandsmaschinen und Modellen besteht eine 1:1-Beziehung. Nachdem die Zustandsmaschine einmal festgelegt wurde, kann sie nicht mehr geändert werden. Alle weiteren Versuche, die Zustandsmaschine mit dieser Methode festzulegen, werden ignoriert.

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

Siehe auch „ stateMachine()“.

[pure virtual invokable] bool QScxmlDataModel::setup(const QVariantMap &initialDataValues)

Initialisiert das Datenmodell mit den in „ initialDataValues “ angegebenen Anfangswerten.

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

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

QScxmlStateMachine *QScxmlDataModel::stateMachine() const

Gibt die dem Datenmodell zugeordnete Zustandsmaschine zurück.

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

Siehe auch „ setStateMachine()“.

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