QScxmlNullDataModel 类

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

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

公共函数

QScxmlNullDataModel(QObject *parent = nullptr)
虚拟~QScxmlNullDataModel()

重写的公共函数

虚拟 voidevaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 voidevaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) override
虚拟 voidevaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 boolevaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 QStringevaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 QVariantevaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 voidevaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) override
虚拟 boolhasScxmlProperty(const QString &name) const override
虚拟 QVariantscxmlProperty(const QString &name) const override
虚拟 voidsetScxmlEvent(const QScxmlEvent &event) override
虚拟 boolsetScxmlProperty(const QString &name, const QVariant &value, const QString &context) override
虚拟 boolsetup(const QVariantMap &initialDataValues) override

详细描述

此类实现了如 SCXML 规范中所述的空数据模型(请参阅 SCXML 规范 - B.1 空数据模型)。对于 <scxml> 元素的 datamodel 属性使用值 "null" 表示没有底层数据模型,但仍可以使用某些可执行内容,例如 In(...)<log>

另请参阅 QScxmlStateMachineQScxmlDataModel

成员函数文档

[显式] QScxmlNullDataModel::QScxmlNullDataModel(QObject *parent = nullptr)

创建一个新的 Qt SCXML 空数据模型,包括父对象 parent

[虚拟 noexcept] QScxmlNullDataModel::~QScxmlNullDataModel()

销毁数据模型。

[重写虚拟] void QScxmlNullDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)

重新实现: QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok).

抛出错误并设置 okfalse,因为空数据模型无法评估赋值。

[重写虚拟] void QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)

重新实现: QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body).

抛出错误并设置 okfalse,因为空数据模型无法评估 <foreach> 块。

[重写虚拟] void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)

重新实现: QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok).

抛出错误并设置 okfalse,因为空数据模型无法初始化数据。

[重写虚拟] QString QScxmlNullDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)

重新实现: QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok).

评估指向 id 的可执行内容并记录在 ok 中是否出现错误。以布尔值返回评估结果。空数据模型可以评估指令 In(...),因此这可能导致实际值而不是错误。

[重写虚拟] QString QScxmlNullDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)

重新实现: QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok).

评估指向 id 的可执行内容并记录在 ok 中是否出现错误。以字符串形式返回评估结果。空数据模型可以评估 <log> 元素,因此这可能导致实际值而不是错误。

[重写虚拟] QVariant QScxmlNullDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)

重新实现: QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok).

评估由 id 指向的可执行内容,并在 ok 中记录是否发生错误。由于这是空数据模型,因此任何评估实际上都会导致错误,并将 ok 设置为 false。返回一个空的 QVariant

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

重写 implement: QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)

评估由 id 指向的可执行内容,并在 ok 中记录是否发生错误。由于这是空数据模型,因此任何评估实际上都会导致错误,并将 ok 设置为 false

[ overrides 虚函数 ] bool QScxmlNullDataModel::hasScxmlProperty(const QString &name) const

重写 implement: QScxmlDataModel::hasScxmlProperty(const QString &name) const.

返回 false,因为空数据模型不支持属性。

[ overrides 虚函数 ] QVariant QScxmlNullDataModel::scxmlProperty(const QString &name) const

重写 implement: QScxmlDataModel::scxmlProperty(const QString &name) const.

返回一个无效的 variant,因为空数据模型不支持属性。

另请参阅 setScxmlProperty()。

[ overrides 虚函数 ] void QScxmlNullDataModel::setScxmlEvent(const QScxmlEvent &event)

重写 implement: QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)

不会实际设置 event,因为空数据模型不处理事件。

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

重写 implement: QScxmlDataModel::setScxmlProperty(const QString &name, const QVariant &value, const QString &context)

返回 false,因为空数据模型不支持属性。

另请参阅 scxmlProperty()。

[ overrides 虚函数 ] bool QScxmlNullDataModel::setup(const QVariantMap &initialDataValues)

重写 implement: QScxmlDataModel::setup(const QVariantMap &initialDataValues)

© 2024 Qt Company Ltd。此文档中的文档贡献是各自所有者的版权。此文档受GNU自由文档许可版本1.3的许可,由自由软件基金会发布。Qt和相应徽标是芬兰和/或全球其他国家的Qt Company Ltd的商标。所有其他商标均为其各自所有者的财产。