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: |
パブリックタイプ
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)
プライベート・オブジェクト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()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。