QScxmlDataModel 类
QScxmlDataModel 类是 Qt SCXML 状态机的数据模型基类。更多...
头文件 | #include <QScxmlDataModel> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
qmake | QT += scxml |
继承自 | QObject |
继承 |
公共类型
属性
- stateMachine : QScxmlStateMachine*
公共函数
QScxmlDataModel(QObject *parent = nullptr) | |
QBindable<QScxmlStateMachine *> | bindableStateMachine() |
virtual void | evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual void | evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body) = 0 |
virtual void | evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual bool | evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual QString | evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual QVariant | evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual void | evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok) = 0 |
virtual bool | hasScxmlProperty(const QString &name) const = 0 |
virtual QVariant | scxmlProperty(const QString &name) const = 0 |
virtual void | setScxmlEvent(const QScxmlEvent &event) = 0 |
virtual bool | setScxmlProperty(const QString &name, const QVariant &value, const QString &context) = 0 |
void | setStateMachine(QScxmlStateMachine *stateMachine) |
virtual bool | setup(const QVariantMap &initialDataValues) = 0 |
QScxmlStateMachine * | stateMachine() const |
信号
void | stateMachineChanged(QScxmlStateMachine *stateMachine) |
静态公共成员
QScxmlDataModel * | createScxmlDataModel(const QString &pluginKey) |
受保护函数
QScxmlDataModel(QScxmlDataModelPrivate &dd, QObject *parent = nullptr) |
有关QScxmlStateMachine,QScxmlCppDataModel和QScxmlNullDataModel。
属性文档
[bindable]
stateMachine : QScxmlStateMachine*
注意:此属性支持QProperty绑定。
此属性持有此数据模型所属的状态机。
一个数据模型只能属于一个状态机,状态机也只有一个数据模型。此关系需要在状态机启动之前设置。设置数据模型上的此属性将在状态机上自动设置相应的dataModel
属性。
成员函数文档
[explicit]
QScxmlDataModel::QScxmlDataModel(QObject *parent = nullptr)
创建一个新的数据模型,具有父对象parent。
[explicit protected]
QScxmlDataModel::QScxmlDataModel(QScxmlDataModelPrivate &dd, QObject *parent = nullptr)
从私有对象dd创建一个新的数据模型,具有父对象parent。
[static]
QScxmlDataModel *QScxmlDataModel::createScxmlDataModel(const QString &pluginKey)
通过指定的pluginKey从插件创建数据模型。
[pure virtual]
void QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由id指向的赋值,并在发生错误时将ok设置为false
,如果没有错误则设置为true
。
[pure virtual]
void QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)
评估由id指向的foreach循环,并在发生错误时将ok设置为false
,如果没有错误则设置为true
。对每次迭代执行body。
[纯虚函数]
void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由 id 指向的初始化,如果在评估过程中出现错误,则将 ok 设置为 false
,如果没有错误则设置为 true
。
[纯虚函数]
bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false
,如果没有错误则设置为 true
。返回评估结果作为布尔值。
[纯虚函数]
QString QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false
,如果没有错误则设置为 true
。返回评估结果作为 QString。
[纯虚函数]
QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false
,如果没有错误则设置为 true
。返回评估结果作为 QVariant。
[纯虚函数]
void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)
评估由 id 指向的可执行内容,如果在评估过程中出现错误,则将 ok 设置为 false
,如果没有错误则设置为 true
。执行预期不返回任何结果。
[纯虚函数]
bool QScxmlDataModel::hasScxmlProperty(const QString &name) const
如果存在具有给定 name 的属性,则返回 true
,否则返回 false
。
[纯虚函数]
QVariant QScxmlDataModel::scxmlProperty(const QString &name) const
返回属性 name 的值。
另请参阅setScxmlProperty()。
[纯虚函数]
void QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)
设置要在后续可执行内容执行中使用的 event。
[纯虚函数]
bool QScxmlDataModel::setScxmlProperty(const QString &name, const QVariant &value, const QString &context)
为属性 name 设置值 value。
context 是一个字符串,用于错误消息中指示 SCXML 文件中错误发生的位置。
如果成功,返回 true
,如果发生错误,返回 false
。
另请参阅scxmlProperty。
void QScxmlDataModel::setStateMachine(QScxmlStateMachine *stateMachine)
将此模型所属的状态机设置为 stateMachine。状态机和模型之间存在 1:1 的关系。设置状态机一次后,就将不能再更改。使用此方法设置状态机的新尝试将一律被忽略。
注意:属性 stateMachine 的设置函数。
另请参阅stateMachine。
[纯虚可调用函数]
bool QScxmlDataModel::setup(const QVariantMap &initialDataValues)
使用 initialDataValues 指定的初始值初始化数据模型。
如果发生解析错误或任何初始化步骤失败,返回 false
。否则返回 true
。
注意:此函数可以通过元对象系统和 QML 调用。请参阅 Q_INVOKABLE。
QScxmlStateMachine *QScxmlDataModel::stateMachine() const
返回与数据模型关联的状态机。
注意:属性 stateMachine 的获取函数。
另请参阅setStateMachine。
© 2024 Qt 公司。此处包含的文档贡献由其各自的所有者拥有版权。提供的文档受 GNU 自由文档许可协议第 1.3 版 的许可条款约束,由自由软件基金会公布。Qt 和相应的徽标是芬兰 Qt 公司以及世界各地的商标。所有其他商标均为其各自所有者的财产。