QScxmlDataModel Class
QScxmlDataModel クラスは、Qt SCXML ステートマシンのデータモデル・ベース・クラスです。詳細...
ヘッダー | #include <QScxmlDataModel> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Scxml) target_link_libraries(mytarget PRIVATE Qt6::Scxml) |
qmake: | QT += scxml |
を継承する: | QObject |
によって継承される: |
パブリックな型
class | ForeachLoopBody |
プロパティ
- 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) |
詳細な説明
SCXML のデータモデルについてはSCXML Specification - 5 Data Model and Data Manipulation を参照してください。サポートされるデータモデルの詳細についてはSCXML Compliance を参照してください。
1つのデータモデルは1つのステートマシンにのみ属することができます。
QScxmlStateMachine 、QScxmlCppDataModel 、QScxmlNullDataModelも参照して ください。
プロパティ・ドキュメント
[bindable]
stateMachine : QScxmlStateMachine*
注意: このプロパティはQProperty バインディングをサポートしています。
このプロパティは、このデータモデルが属するステートマシンを保持します。
データモデルは1つのステートマシンにしか属すことができず、ステートマシンは1つのデータモデルしか持つことができない。この関係は、ステートマシンが起動する前に設定する必要があります。データモデルにこのプロパティを設定すると、stateMachine の対応するdataModel
プロパティが自動的に設定されます。
メンバ関数のドキュメント
[explicit]
QScxmlDataModel::QScxmlDataModel(QObject *parent = nullptr)
親オブジェクトparent 。
[explicit protected]
QScxmlDataModel::QScxmlDataModel(QScxmlDataModelPrivate &dd, QObject *parent = nullptr)
親オブジェクトparent を持つプライベートオブジェクトdd から新しいデータモデルを作成します。
[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 は各反復で実行される。
[pure virtual]
void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)
id が指す初期化を評価し、エラーがあればok をfalse
に、なければtrue
にセットする。
[pure virtual]
bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)
id が指す実行可能コンテンツを評価し、エラーがあった場合はok をfalse
に設定し、エラーがなかった場合はtrue
に設定する。評価結果をブール値で返す。
[pure virtual]
QString QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)
id が指す実行可能コンテンツを評価し、エラーがあった場合はok をfalse
に、エラーがなかった場合はtrue
に設定する。評価結果をQString として返す。
[pure virtual]
QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)
id が指す実行可能コンテンツを評価し、エラーがあった場合はok をfalse
に設定し、エラーがなかった場合はtrue
に設定する。評価結果をQVariant として返す。
[pure virtual]
void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)
id が指す実行可能コンテンツを評価し、エラーがあった場合はok をfalse
に、エラーがなかった場合はtrue
に設定する。実行は結果を返さないことが期待される。
[pure virtual]
bool QScxmlDataModel::hasScxmlProperty(const QString &name) const
与えられたname を持つプロパティが存在する場合はtrue
を、そうでない場合はfalse
を返す。
[pure virtual]
QVariant QScxmlDataModel::scxmlProperty(const QString &name) const
プロパティname の値を返します。
setScxmlProperty()も参照 。
[pure virtual]
void QScxmlDataModel::setScxmlEvent(const QScxmlEvent &event)
その後の実行コンテンツの実行で使用するevent を設定する。
[pure virtual]
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()も参照 。
[pure virtual invokable]
bool QScxmlDataModel::setup(const QVariantMap &initialDataValues)
initialDataValues で指定された初期値でデータモデルを初期化する。
構文解析エラーが発生した場合、または初期化ステップのいずれかが失敗した場合はfalse
を返します。それ以外の場合はtrue
を返します。
注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。
QScxmlStateMachine *QScxmlDataModel::stateMachine() const
データモデルに関連付けられたステートマシンを返します。
注: プロパティ stateMachine のゲッター関数。
setStateMachine()も参照してください 。
© 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.