このページでは

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「Nullデータモデル」に記載されているNullデータモデルを実装しています。<scxml> 要素のdatamodel属性に値「"null" 」を指定すると、基礎となるデータモデルは存在しないことを意味しますが、In(...) や<log> などの実行可能コンテンツは引き続き使用可能です。

「 QScxmlStateMachine 」および「QScxmlDataModel 」も参照してください 。

メンバ関数のドキュメント

[explicit] QScxmlNullDataModel::QScxmlNullDataModel(QObject *parent = nullptr)

親オブジェクトparent を持つ、新しいQt SCXML のnullデータモデルを作成します。

[virtual noexcept] QScxmlNullDataModel::~QScxmlNullDataModel()

データモデルを破棄します。

[override virtual] void QScxmlNullDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok)

QScxmlDataModel::evaluateAssignment(QScxmlExecutableContent::EvaluatorId id, bool *ok) を再実装します。

null データモデルでは代入式を評価できないため、エラーをスローし、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) を再実装します。

nullのデータモデルでは<foreach> ブロックを評価できないため、エラーをスローし、ok をfalse に設定します。

[override virtual] void QScxmlNullDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)

QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok) を再実装します。

null データモデルではデータを初期化できないため、エラーをスローし、ok をfalse に設定します。

[override virtual] bool QScxmlNullDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)

QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok) を再実装します。

id が指す実行可能コンテンツを評価し、エラーの有無をok に記録します。評価結果をブール値として返します。null データモデルは命令In(...) を評価できるため、エラーではなく実際の値が返される場合があります。

[override virtual] QString QScxmlNullDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)

QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok) を再実装します。

id が指す実行可能コンテンツを評価し、エラーの有無をok に記録します。評価結果を文字列として返します。null データモデルは<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 を再実装します。

nullデータモデルはプロパティをサポートしていないため、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) を再実装します。

null データモデルはイベントを処理しないため、実際には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)を再実装します。

nullデータモデルはプロパティをサポートしていないため、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.