QScxmlDataModel Class

QScxmlDataModel クラスは、Qt SCXML ステートマシンのデータモデル基底クラスです。詳細...

Header: #include <QScxmlDataModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Scxml)
target_link_libraries(mytarget PRIVATE Qt6::Scxml)
qmake: QT += scxml
Inherits: QObject
Inherited By:

QScxmlCppDataModel and 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)

プライベート・オブジェクトdd から、親オブジェクトparent を持つ新しいデータモデルを作成します。

[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()も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。