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: |
Öffentliche Typen
| class | ForeachLoopBody |
Eigenschaften
- stateMachine : QScxmlStateMachine*
Ö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.