Sur cette page

QScxmlDataModel Class

La classe QScxmlDataModel est la classe de base du modèle de données pour une machine à états Qt SCXML. Plus d'informations...

En-tête : #include <QScxmlDataModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmake : QT += scxml
Hérite : QObject
Héritée par :

QScxmlCppDataModel et QScxmlNullDataModel

Types publics

Propriétés

Fonctions publiques

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

Signaux

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Membres publics statiques

QScxmlDataModel *createScxmlDataModel(const QString &pluginKey)

Fonctions protégées

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

Description détaillée

Les modèles de données SCXML sont décrits dans la spécification SCXML - 5 Modèle de données et manipulation des données. Pour plus d'informations sur les modèles de données pris en charge, voir Conformité SCXML.

Un modèle de données ne peut appartenir qu'à une seule machine d'état.

Voir également QScxmlStateMachine, QScxmlCppDataModel, et QScxmlNullDataModel.

Documentation sur les propriétés

[bindable] stateMachine : QScxmlStateMachine*

Remarque : Cette propriété prend en charge les liaisons QProperty.

Cette propriété contient la machine d'état à laquelle ce modèle de données appartient.

Un modèle de données ne peut appartenir qu'à une seule machine d'état et une machine d'état ne peut avoir qu'un seul modèle de données. Cette relation doit être établie avant le démarrage de l'automate à états. En définissant cette propriété sur un modèle de données, la propriété dataModel correspondante sera automatiquement définie sur le site stateMachine.

Fonctions d'accès :

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

Signal Notificateur :

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Member Function Documentation

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

Crée un nouveau modèle de données, avec l'objet parent parent.

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

Crée un nouveau modèle de données à partir de l'objet privé dd, avec l'objet parent parent.

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

Crée un modèle de données à partir d'un plugin spécifié par pluginKey.

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

Évalue l'affectation indiquée par id et attribue à ok la valeur false en cas d'erreur ou true dans le cas contraire.

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

Évalue la boucle foreach pointée par id et définit ok en false s'il y a eu une erreur ou en true s'il n'y en a pas eu. La commande body est exécutée à chaque itération.

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

Évalue l'initialisation indiquée par id et définit ok en false s'il y a eu une erreur ou en true s'il n'y en a pas eu.

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

Évalue le contenu exécutable indiqué par id et définit ok en false en cas d'erreur ou en true dans le cas contraire. Renvoie le résultat de l'évaluation sous la forme d'une valeur booléenne.

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

Évalue le contenu exécutable indiqué par id et définit ok en false en cas d'erreur ou en true dans le cas contraire. Renvoie le résultat de l'évaluation sous la forme de QString.

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

Évalue le contenu exécutable indiqué par id et définit ok en false en cas d'erreur ou en true dans le cas contraire. Renvoie le résultat de l'évaluation sous la forme de QVariant.

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

Évalue le contenu exécutable indiqué par id et attribue à ok la valeur false en cas d'erreur ou true dans le cas contraire. Il est prévu que l'exécution ne renvoie aucun résultat.

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

Renvoie true s'il existe une propriété avec l'adresse name donnée, false dans le cas contraire.

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

Renvoie la valeur de la propriété name.

Voir également setScxmlProperty().

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

Définit le site event à utiliser lors de l'exécution ultérieure du contenu exécutable.

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

Définit la valeur value pour la propriété name.

La valeur context est une chaîne de caractères utilisée dans les messages d'erreur pour indiquer l'emplacement du fichier SCXML où l'erreur s'est produite.

Renvoie true en cas de succès ou false en cas d'erreur.

Voir également scxmlProperty().

void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)

Définit la machine d'état à laquelle ce modèle appartient à stateMachine. Il existe une relation 1:1 entre les machines d'état et les modèles. Après avoir défini la machine à états une fois, vous ne pouvez plus la modifier. Toute nouvelle tentative de définir la machine à états à l'aide de cette méthode sera ignorée.

Remarque : fonction de définition de la propriété stateMachine.

Voir aussi stateMachine().

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

Initialise le modèle de données avec les valeurs initiales spécifiées par initialDataValues.

Renvoie false en cas d'erreur d'analyse ou d'échec de l'une des étapes d'initialisation. Sinon, elle renvoie true.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

QScxmlStateMachine *QScxmlDataModel::stateMachine() const

Renvoie la machine d'état associée au modèle de données.

Note : Fonction Getter pour la propriété stateMachine.

Voir aussi 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.