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
によって継承される:

QScxmlCppDataModel そしてQScxmlNullDataModel

パブリックな型

プロパティ

パブリック機能

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つのステートマシンにのみ属することができます。

QScxmlStateMachineQScxmlCppDataModelQScxmlNullDataModelも参照して ください。

プロパティ・ドキュメント

[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 が指す代入を評価し、エラーがあればokfalse に、エラーがなければtrue にセットする。

[pure virtual] void QScxmlDataModel::evaluateForeach(QScxmlExecutableContent::EvaluatorId id, bool *ok, QScxmlDataModel::ForeachLoopBody *body)

id が指す foreach ループを評価し、エラーがあればokfalse に、なければtrue にセットする。body は各反復で実行される。

[pure virtual] void QScxmlDataModel::evaluateInitialization(QScxmlExecutableContent::EvaluatorId id, bool *ok)

id が指す初期化を評価し、エラーがあればokfalse に、なければtrue にセットする。

[pure virtual] bool QScxmlDataModel::evaluateToBool(QScxmlExecutableContent::EvaluatorId id, bool *ok)

id が指す実行可能コンテンツを評価し、エラーがあった場合はokfalse に設定し、エラーがなかった場合はtrue に設定する。評価結果をブール値で返す。

[pure virtual] QString QScxmlDataModel::evaluateToString(QScxmlExecutableContent::EvaluatorId id, bool *ok)

id が指す実行可能コンテンツを評価し、エラーがあった場合はokfalse に、エラーがなかった場合はtrue に設定する。評価結果をQString として返す。

[pure virtual] QVariant QScxmlDataModel::evaluateToVariant(QScxmlExecutableContent::EvaluatorId id, bool *ok)

id が指す実行可能コンテンツを評価し、エラーがあった場合はokfalse に設定し、エラーがなかった場合はtrue に設定する。評価結果をQVariant として返す。

[pure virtual] void QScxmlDataModel::evaluateToVoid(QScxmlExecutableContent::EvaluatorId id, bool *ok)

id が指す実行可能コンテンツを評価し、エラーがあった場合はokfalse に、エラーがなかった場合は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.