QScxmlDataModel 类

QScxmlDataModel 类是 Qt SCXML 状态机的数据模型基类。更多...

头文件 #include <QScxmlDataModel>
CMakefind_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmakeQT += scxml
继承自 QObject
继承

QScxmlCppDataModelQScxmlNullDataModel

公共类型

属性

公共函数

QScxmlDataModel(QObject *parent = nullptr)
QBindable<QScxmlStateMachine *>bindableStateMachine()
virtual voidevaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual voidevaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) = 0
virtual voidevaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual boolevaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual QStringevaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual QVariantevaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual voidevaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0
virtual boolhasScxmlProperty(const QString &name) const = 0
virtual QVariantscxmlProperty(const QString &name) const = 0
virtual voidsetScxmlEvent(const QScxmlEvent &event) = 0
virtual boolsetScxmlProperty(const QString &name, const QVariant &value, const QString &context) = 0
voidsetStateMachine(QScxmlStateMachine *stateMachine)
virtual boolsetup(const QVariantMap &initialDataValues) = 0
QScxmlStateMachine *stateMachine() const

信号

voidstateMachineChanged(QScxmlStateMachine *stateMachine)

静态公共成员

QScxmlDataModel *createScxmlDataModel(const QString &pluginKey)

受保护函数

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

详细描述

SCXML数据模型在SCXML规范 - 5 数据模型和数据操作中进行描述。有关支持的数据模型的更多信息,请参阅SCXML兼容性

一个数据模型只能属于一个状态机。

有关QScxmlStateMachineQScxmlCppDataModelQScxmlNullDataModel

属性文档

[bindable] stateMachine : QScxmlStateMachine*

注意:此属性支持QProperty绑定。

此属性持有此数据模型所属的状态机。

一个数据模型只能属于一个状态机,状态机也只有一个数据模型。此关系需要在状态机启动之前设置。设置数据模型上的此属性将在状态机上自动设置相应的dataModel属性。

成员函数文档

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

创建一个新的数据模型,具有父对象parent

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

从私有对象dd创建一个新的数据模型,具有父对象parent

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

通过指定的pluginKey从插件创建数据模型。

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

评估由id指向的赋值,并在发生错误时将ok设置为false,如果没有错误则设置为true

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

评估由id指向的foreach循环,并在发生错误时将ok设置为false,如果没有错误则设置为true。对每次迭代执行body

[纯虚函数] void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的初始化,如果在评估过程中出现错误,则将 ok 设置为 false,如果没有错误则设置为 true

[纯虚函数] bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false,如果没有错误则设置为 true。返回评估结果作为布尔值。

[纯虚函数] QString QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false,如果没有错误则设置为 true。返回评估结果作为 QString

[纯虚函数] QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false,如果没有错误则设置为 true。返回评估结果作为 QVariant

[纯虚函数] void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false,如果没有错误则设置为 true。执行预期不返回任何结果。

[纯虚函数] bool QScxmlDataModel::hasScxmlProperty(const QString &name) const

如果存在具有给定 name 的属性,则返回 true,否则返回 false

[纯虚函数] QVariant QScxmlDataModel::scxmlProperty(const QString &name) const

返回属性 name 的值。

另请参阅setScxmlProperty()。

[纯虚函数] void QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)

设置要在后续可执行内容执行中使用的 event

[纯虚函数] bool QScxmlDataModel::setScxmlProperty(const QString &name, const QVariant &value, const QString &context)

为属性 name 设置值 value

context 是一个字符串,用于错误消息中指示 SCXML 文件中错误发生的位置。

如果成功,返回 true,如果发生错误,返回 false

另请参阅scxmlProperty

void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)

将此模型所属的状态机设置为 stateMachine。状态机和模型之间存在 1:1 的关系。设置状态机一次后,就将不能再更改。使用此方法设置状态机的新尝试将一律被忽略。

注意:属性 stateMachine 的设置函数。

另请参阅stateMachine

[纯虚可调用函数] bool QScxmlDataModel::setup(const QVariantMap &initialDataValues)

使用 initialDataValues 指定的初始值初始化数据模型。

如果发生解析错误或任何初始化步骤失败,返回 false。否则返回 true

注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE

QScxmlStateMachine *QScxmlDataModel::stateMachine() const

返回与数据模型关联的状态机。

注意:属性 stateMachine 的获取函数。

另请参阅setStateMachine

© 2024 Qt 公司。此处包含的文档贡献由其各自的所有者拥有版权。提供的文档受 GNU 自由文档许可协议第 1.3 版 的许可条款约束,由自由软件基金会公布。Qt 和相应的徽标是芬兰 Qt 公司以及世界各地的商标。所有其他商标均为其各自所有者的财产。