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: |
Tipos públicos
| class | ForeachLoopBody |
Propiedades
- stateMachine : QScxmlStateMachine*
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.