このページでは

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 仕様 - 5 データ・モデルおよびデータ操作』に記載されています。サポートされているデータ・モデルの詳細については、「SCXML 準拠」を参照してください。

1つのデータモデルは、1つのステートマシンにのみ属することができます。

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

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

[bindable] stateMachine : QScxmlStateMachine*

注:この プロパティは、QProperty バインディングをサポートしています。

このプロパティは、このデータモデルが属するステートマシンを保持します。

1つのデータモデルは1つのステートマシンにのみ属することができ、1つのステートマシンは1つのデータモデルのみを保持できます。この関係は、ステートマシンの起動前に設定する必要があります。データモデルでこのプロパティを設定すると、stateMachine の対応するdataModel プロパティが自動的に設定されます。

アクセス関数:

QScxmlStateMachine *stateMachine() const
void setStateMachine(QScxmlStateMachine *stateMachine)

通知シグナル:

void stateMachineChanged(QScxmlStateMachine *stateMachine)

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

[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 は各反復で実行されます。

[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()。

© 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.