QScxmlNullDataModel 类
QScxmlNullDataModel 类是 Qt SCXML 状态机的空数据模型。 更多...
头文件 | #include <QScxmlNullDataModel> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
qmake | QT += scxml |
继承自 | QScxmlDataModel |
公共函数
QScxmlNullDataModel(QObject *parent = nullptr) | |
虚拟 | ~QScxmlNullDataModel() |
重写的公共函数
虚拟 void | evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 void | evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) override |
虚拟 void | evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 bool | evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 QString | evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 QVariant | evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 void | evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
虚拟 bool | hasScxmlProperty(const QString &name) const override |
虚拟 QVariant | scxmlProperty(const QString &name) const override |
虚拟 void | setScxmlEvent(const QScxmlEvent &event) override |
虚拟 bool | setScxmlProperty(const QString &name, const QVariant &value, const QString &context) override |
虚拟 bool | setup(const QVariantMap &initialDataValues) override |
详细描述
此类实现了如 SCXML 规范中所述的空数据模型(请参阅 SCXML 规范 - B.1 空数据模型)。对于 <scxml>
元素的 datamodel 属性使用值 "null"
表示没有底层数据模型,但仍可以使用某些可执行内容,例如 In(...)
或 <log>
。
另请参阅 QScxmlStateMachine 和 QScxmlDataModel。
成员函数文档
[显式]
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).
抛出错误并设置 ok 为 false
,因为空数据模型无法评估赋值。
[重写虚拟]
void QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)
重新实现: QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body).
抛出错误并设置 ok 为 false
,因为空数据模型无法评估 <foreach>
块。
[重写虚拟]
void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重新实现: QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok).
抛出错误并设置 ok 为 false
,因为空数据模型无法初始化数据。
[重写虚拟]
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的商标。所有其他商标均为其各自所有者的财产。