QScxmlDataModel Class
La classe `QScxmlDataModel` est la classe de base du modèle de données d'une machine à états « Qt SCXML ». En savoir plus...
| En-tête : | #include <QScxmlDataModel> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
| qmake : | QT += scxml |
| Hérite de : | QObject |
| Hérité par : |
Types publics
| class | ForeachLoopBody |
Propriétés
- stateMachine : QScxmlStateMachine*
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, consultez la section Conformité SCXML.
Un modèle de données ne peut appartenir qu'à une seule machine à états.
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 à états à laquelle appartient ce modèle de données.
Un modèle de données ne peut appartenir qu’à une seule machine à états et une machine à états ne peut avoir qu’un seul modèle de données. Cette relation doit être configurée avant le démarrage de la machine à états. La définition de cette propriété sur un modèle de données définit automatiquement la propriété dataModel correspondante sur l’ stateMachine.
Fonctions d’accès :
| QScxmlStateMachine * | stateMachine() const |
| void | setStateMachine(QScxmlStateMachine *stateMachine) |
Signal de notification :
| void | stateMachineChanged(QScxmlStateMachine *stateMachine) |
Documentation des fonctions membres
[explicit] QScxmlDataModel::QScxmlDataModel(QObject *parent = nullptr)
Crée un nouveau modèle de données, dont l'objet parent est 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, dont l'objet parent est parent.
[static] QScxmlDataModel *QScxmlDataModel::createScxmlDataModel(const QString &pluginKey)
Crée un modèle de données à partir d'un plugin spécifié par un objet de type ` pluginKey`.
[pure virtual] void QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)
Évalue l'affectation pointée par ` id ` et attribue à ` ok ` la valeur ` false ` en cas d'erreur, ou ` true ` en l'absence d'erreur.
[pure virtual] void QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)
Évalue la boucle « foreach » pointée par ` id ` et attribue la valeur ` false ` à ` ok ` en cas d'erreur, ou ` true ` en l'absence d'erreur. La méthode ` body ` est exécutée à chaque itération.
[pure virtual] void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
Évalue l'initialisation pointée par ` id ` et définit ` ok ` sur ` false ` en cas d'erreur, ou sur ` true ` en l'absence d'erreur.
[pure virtual] bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)
Évalue le contenu exécutable pointé par id et définit ok sur false en cas d'erreur, ou sur true en l'absence d'erreur. 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 pointé par ` id ` et définit ` ok ` sur ` false ` en cas d'erreur, ou sur ` true ` en l'absence d'erreur. Renvoie le résultat de l'évaluation sous la forme d'un objet ` QString`.
[pure virtual] QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)
Évalue le contenu exécutable pointé par ` id ` et définit ` ok ` sur ` false ` en cas d'erreur, ou sur ` true ` en l'absence d'erreur. Renvoie le résultat de l'évaluation sous la forme d'un ` QVariant`.
[pure virtual] void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)
Évalue le contenu exécutable pointé par id et définit ok sur false en cas d'erreur, ou sur true en l'absence d'erreur. L'exécution ne doit renvoyer aucun résultat.
[pure virtual] bool QScxmlDataModel::hasScxmlProperty(const QString &name) const
Renvoie « true » si une propriété portant l’ name indiquée existe, et « 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 l'event e à 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 ».
context est une chaîne de caractères utilisée dans les messages d'erreur pour indiquer l'emplacement dans le fichier SCXML où l'erreur s'est produite.
Renvoie true en cas de réussite ou false si une erreur s’est produite.
Voir également scxmlProperty().
void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)
Définit la machine à états à laquelle appartient ce modèle sur « stateMachine ». Il existe une relation biunivoque entre les machines à états et les modèles. Une fois la machine à états définie, vous ne pouvez plus la modifier. Toute tentative ultérieure de définir la machine à états à l'aide de cette méthode sera ignorée.
Remarque : fonctionde définition pour la propriété stateMachine.
Voir également 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'erreurs d'analyse ou si l'une des étapes d'initialisation échoue. Renvoie true dans le cas contraire.
Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.
QScxmlStateMachine *QScxmlDataModel::stateMachine() const
Renvoie la machine à états associée au modèle de données.
Remarque : fonctiongetter 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.