En esta página

QScxmlDataModel Class

La clase QScxmlDataModel es la clase base del modelo de datos para una máquina de estados Qt SCXML. Más...

Cabecera: #include <QScxmlDataModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmake: QT += scxml
Hereda: QObject
Heredado por:

QScxmlCppDataModel y QScxmlNullDataModel

Tipos públicos

Propiedades

Funciones públicas

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

Señales

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Miembros públicos estáticos

QScxmlDataModel *createScxmlDataModel(const QString &pluginKey)

Funciones protegidas

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

Descripción detallada

Los modelos de datos SCXML se describen en Especificación SCXML - 5 Modelo de datos y manipulación de datos. Para obtener más información sobre los modelos de datos admitidos, consulte Cumplimiento de SCXML.

Un modelo de datos sólo puede pertenecer a una máquina de estado.

Véase también QScxmlStateMachine, QScxmlCppDataModel y QScxmlNullDataModel.

Documentación de propiedades

[bindable] stateMachine : QScxmlStateMachine*

Nota: Esta propiedad admite los enlaces QProperty.

Esta propiedad contiene la máquina de estado a la que pertenece este modelo de datos.

Un modelo de datos sólo puede pertenecer a una única máquina de estado y una máquina de estado sólo puede tener un modelo de datos. Esta relación debe establecerse antes de iniciar la máquina de estado. Al establecer esta propiedad en un modelo de datos se establecerá automáticamente la propiedad dataModel correspondiente en stateMachine.

Funciones de acceso:

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

Señal del notificador:

void stateMachineChanged(QScxmlStateMachine *stateMachine)

Documentación de la función miembro

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

Crea un nuevo modelo de datos, con el objeto padre parent.

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

Crea un nuevo modelo de datos a partir del objeto privado dd, con el objeto padre parent.

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

Crea un modelo de datos a partir de un plugin especificado por pluginKey.

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

Evalúa la asignación apuntada por id y establece ok a false si hubo un error o a true si no lo hubo.

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

Evalúa el bucle foreach apuntado por id y establece ok en false si hubo un error o en true si no lo hubo. body se ejecuta en cada iteración.

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

Evalúa la inicialización apuntada por id y establece ok a false si hubo un error o a true si no lo hubo.

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

Evalúa el contenido ejecutable apuntado por id y establece ok a false si hubo un error o a true si no lo hubo. Devuelve el resultado de la evaluación como un valor booleano.

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

Evalúa el contenido ejecutable apuntado por id y establece ok a false si hubo un error o a true si no lo hubo. Devuelve el resultado de la evaluación como QString.

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

Evalúa el contenido ejecutable apuntado por id y establece ok a false si hubo un error o a true si no lo hubo. Devuelve el resultado de la evaluación como QVariant.

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

Evalúa el contenido ejecutable apuntado por id y establece ok a false si hubo un error o a true si no lo hubo. Se espera que la ejecución no devuelva ningún resultado.

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

Devuelve true si existe una propiedad con el valor name, false en caso contrario.

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

Devuelve el valor de la propiedad name.

Véase también setScxmlProperty().

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

Establece la dirección event que se utilizará en la ejecución posterior del contenido ejecutable.

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

Establece el valor value para la propiedad name.

context es una cadena que se utiliza en los mensajes de error para indicar la ubicación en el archivo SCXML donde se produjo el error.

Devuelve true si se ha realizado correctamente o false si se ha producido un error.

Véase también scxmlProperty().

void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)

Establece la máquina de estados a la que pertenece este modelo en stateMachine. Existe una relación 1:1 entre las máquinas de estados y los modelos. Después de establecer la máquina de estado una vez, ya no se puede cambiar. Cualquier otro intento de establecer la máquina de estado utilizando este método será ignorado.

Nota: Función Setter para la propiedad stateMachine.

Véase también stateMachine().

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

Inicializa el modelo de datos con los valores iniciales especificados en initialDataValues.

Devuelve false si se producen errores de análisis o si falla alguno de los pasos de inicialización. En caso contrario, devuelve true.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

QScxmlStateMachine *QScxmlDataModel::stateMachine() const

Devuelve la máquina de estados asociada al modelo de datos.

Nota: Función Getter para la propiedad stateMachine.

Véase también 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.