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的商标。所有其他商标均为其各自所有者的财产。