QScxmlNullDataModel Class
QScxmlNullDataModel 类是Qt SCXML stateMachine 的空数据模型。更多
Header: | #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 null 数据模型,父对象为parent 。
[virtual noexcept]
QScxmlNullDataModel::~QScxmlNullDataModel()
销毁数据模型。
[override virtual]
void QScxmlNullDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重实现:QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)。
抛出错误并将ok 设置为false
,因为 null 数据模型不能评估赋值。
[override virtual]
void QScxmlNullDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)
重实现:QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body).
抛出错误并将ok 设置为false
,因为 null 数据模型无法评估<foreach>
块。
[override virtual]
void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
重实现:QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)。
抛出错误并将ok 设置为false
,因为 null 数据模型无法初始化数据。
[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
,因为 null 数据模型不支持属性。
[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 ,因为 null 数据模型不处理事件。
[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
,因为 null 数据模型不支持属性。
另请参阅 scxmlProperty().
[override virtual invokable]
bool QScxmlNullDataModel::setup(const QVariantMap &initialDataValues)
重实现:QScxmlDataModel::setup(const QVariantMap &initialDataValues).
© 2025 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.