QScxmlNullDataModel Class
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) | |
| virtual | ~QScxmlNullDataModel() |
重新实现的公共函数
| virtual void | evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual void | evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) override |
| virtual void | evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual bool | evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual QString | evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual QVariant | evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual void | evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) override |
| virtual bool | hasScxmlProperty(const QString &name) const override |
| virtual QVariant | scxmlProperty(const QString &name) const override |
| virtual void | setScxmlEvent(const QScxmlEvent &event) override |
| virtual bool | setScxmlProperty(const QString &name, const QVariant &value, const QString &context) override |
| virtual bool | setup(const QVariantMap &initialDataValues) override |
详细说明
此类实现了SCXML 规范 - B.1《空数据模型》中所述的空数据模型。将<scxml> 元素的datamodel属性设置为"null" ,表示不存在底层数据模型,但仍可使用某些可执行内容,例如In(...) 或<log> 。
另请参阅 QScxmlStateMachine 和QScxmlDataModel 。
成员函数文档
[explicit] QScxmlNullDataModel::QScxmlNullDataModel(QObject *parent = nullptr)
创建一个新的“Qt SCXML ”空数据模型,其父对象为“parent ”。
[virtual noexcept] QScxmlNullDataModel::~QScxmlNullDataModel()
销毁数据模型。
[override virtual] void QScxmlNullDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写了:QScxmlDataModel::evaluateAssignment (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
抛出错误并将ok 设置为false ,因为空数据模型无法评估赋值操作。
[override virtual] void QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)
重写了:QScxmlDataModel::evaluateForeach (QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)。
由于空数据模型无法评估<foreach> 块,因此会抛出错误并将ok 设置为false 。
[override virtual] void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写:QScxmlDataModel::evaluateInitialization (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
抛出错误并将ok 设置为false ,因为空数据模型无法初始化数据。
[override virtual] bool QScxmlNullDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写:QScxmlDataModel::evaluateToBool (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
评估由id 所指向的可执行内容,并将是否发生错误记录在ok 中。以布尔值返回评估结果。空数据模型可以评估指令In(...) ,因此这可能会返回实际值,而非错误。
[override virtual] QString QScxmlNullDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写:QScxmlDataModel::evaluateToString (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
评估由id 指向的可执行内容,并在ok 中记录是否发生错误。将评估结果作为字符串返回。空数据模型可以评估<log> 元素,因此这可能会返回实际值,而非错误。
[override virtual] QVariant QScxmlNullDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写:QScxmlDataModel::evaluateToVariant (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
评估由id 所指向的可执行内容,并在ok 中记录是否发生错误。由于这是空数据模型,任何评估实际上都会导致错误,此时ok 将被设置为false 。返回一个空的QVariant 。
[override virtual] void QScxmlNullDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重写:QScxmlDataModel::evaluateToVoid (QScxmlExecutableContent::EvaluatorId id, bool *ok)。
评估由id 所指向的可执行内容,并在ok 中记录是否发生错误。由于这是空数据模型,任何评估实际上都会导致错误,此时ok 将被设置为false 。
[override virtual] bool QScxmlNullDataModel::hasScxmlProperty(const QString &name) const
重写了:QScxmlDataModel::hasScxmlProperty(const QString &name) const。
返回false ,因为空数据模型不支持属性。
[override virtual] QVariant QScxmlNullDataModel::scxmlProperty(const QString &name) const
重写了:QScxmlDataModel::scxmlProperty(const QString &name) const。
返回一个无效的变体,因为 null 数据模型不支持属性。
另请参阅 setScxmlProperty()。
[override virtual] void QScxmlNullDataModel::setScxmlEvent(const QScxmlEvent &event)
重写了:QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)。
实际上不会设置 `event`,因为空数据模型不处理事件。
[override virtual] bool QScxmlNullDataModel::setScxmlProperty(const QString &name, const QVariant &value, const QString &context)
重写了:QScxmlDataModel::setScxmlProperty (const QString &name, const QVariant &value, const QString &context)。
返回false ,因为空数据模型不支持属性。
另请参阅 scxmlProperty()。
[override virtual invokable] bool QScxmlNullDataModel::setup(const QVariantMap &initialDataValues)
重写了:QScxmlDataModel::setup(const QVariantMap &initialDataValues)。
© 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.