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.