QQmlProperty Class

QQmlProperty クラスは、QML から生成されたオブジェクトのプロパティへの アクセスを抽象化したものです。詳細...

Header: #include <QQmlProperty>
CMake: find_package(Qt6 REQUIRED COMPONENTS Qml)
target_link_libraries(mytarget PRIVATE Qt6::Qml)
qmake: QT += qml

パブリックな型

enum PropertyTypeCategory { InvalidCategory, List, Object, Normal }
enum Type { Invalid, Property, SignalProperty }

パブリック関数

QQmlProperty()
QQmlProperty(QObject *obj)
QQmlProperty(QObject *obj, QQmlContext *ctxt)
QQmlProperty(QObject *obj, QQmlEngine *engine)
QQmlProperty(QObject *obj, const QString &name)
QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)
QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)
QQmlProperty(const QQmlProperty &other)
bool connectNotifySignal(QObject *dest, const char *slot) const
bool connectNotifySignal(QObject *dest, int method) const
bool hasNotifySignal() const
int index() const
bool isDesignable() const
bool isProperty() const
bool isResettable() const
bool isSignalProperty() const
bool isValid() const
bool isWritable() const
QMetaMethod method() const
QString name() const
bool needsNotifySignal() const
QObject *object() const
QMetaProperty property() const
QMetaType propertyMetaType() const
int propertyType() const
QQmlProperty::PropertyTypeCategory propertyTypeCategory() const
const char *propertyTypeName() const
QVariant read() const
bool reset() const
QQmlProperty::Type type() const
bool write(const QVariant &value) const
QQmlProperty &operator=(const QQmlProperty &other)
bool operator==(const QQmlProperty &other) const

静的パブリックメンバー

QVariant read(const QObject *object, const QString &name)
QVariant read(const QObject *object, const QString &name, QQmlContext *ctxt)
QVariant read(const QObject *object, const QString &name, QQmlEngine *engine)
bool write(QObject *object, const QString &name, const QVariant &value)
bool write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)
bool write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)

詳しい説明

QML は Qt のメタ型システムを利用しているため、既存のQMetaObject クラスはすべて QML によって生成されたオブジェクトのイントロスペクトや相互作用に利用することができます。しかし、QML が提供する新しい機能、例えば型安全性やアタッチドプロパティは、 QQmlProperty クラスを使うことで最も簡単に利用することができます。

QMetaProperty 、クラス型のプロパティを表すのとは異なり、QQmlProperty は特定のオブジェクトインスタンスのプロパティをカプセル化します。プロパティの値を読み取るには、プログラマーはQQmlPropertyインスタンスを作成し、read ()メソッドを呼び出します。同様に、プロパティの値を書き込むには、write()メソッドを使用します。

例えば、次のようなQMLコードです:

// MyItem.qml
import QtQuick 2.0

Text { text: "A bit of text" }

Text オブジェクトのプロパティには、QQmlProperty を使って次のようにアクセスできます:

#include <QQmlProperty>
#include <QGraphicsObject>

...

QQuickView view(QUrl::fromLocalFile("MyItem.qml"));
QQmlProperty property(view.rootObject(), "font.pixelSize");
qWarning() << "Current pixel size:" << property.read().toInt();
property.write(24);
qWarning() << "Pixel size should now be 24:" << property.read().toInt();

メンバ型ドキュメント

enum QQmlProperty::PropertyTypeCategory

この列挙型は QML プロパティのカテゴリを指定します。

定数説明
QQmlProperty::InvalidCategory0プロパティが無効であるか、シグナルプロパティである。
QQmlProperty::List1プロパティはQQmlListProperty リストプロパティです。
QQmlProperty::Object2プロパティはQObject 派生型ポインタです。
QQmlProperty::Normal3プロパティは通常の値です。

enum QQmlProperty::Type

この列挙型は QML プロパティの型を指定します。

定数説明
QQmlProperty::Invalid0プロパティは無効です。
QQmlProperty::Property1プロパティは通常の Qt プロパティです。
QQmlProperty::SignalProperty2プロパティはシグナルプロパティです。

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

QQmlProperty::QQmlProperty()

無効な QQmlProperty を作成します。

QQmlProperty::QQmlProperty(QObject *obj)

obj のデフォルトプロパティの QQmlProperty を作成します。 デフォルトプロパティがない場合、無効な QQmlProperty が作成されます。

QQmlProperty::QQmlProperty(QObject *obj, QQmlContext *ctxt)

context ctxt を使用して、obj のデフォルト・プロパティ用の QQmlProperty を作成します。デフォルト・プロパティがない場合、無効な QQmlProperty が作成されます。

QQmlProperty::QQmlProperty(QObject *obj, QQmlEngine *engine)

engine が提供する QML コンポーネントのインスタンス化環境を使用して、obj のデフォルト・プロパティ用の QQmlProperty を作成します。デフォルトプロパティがない場合は、無効なQQmlPropertyが作成されます。

QQmlProperty::QQmlProperty(QObject *obj, const QString &name)

obj のプロパティname に対して QQmlProperty を作成します。

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlContext *ctxt)

context ctxt を使用して、obj のプロパティname に対して QQmlProperty を作成します。

コンテキストなしでQQmlPropertyを作成すると、いくつかのプロパティ(添付プロパティなど)はアクセスできなくなります。

QQmlProperty::QQmlProperty(QObject *obj, const QString &name, QQmlEngine *engine)

engine によって提供される QML コンポーネントのインスタンス化環境を使用して、obj のプロパティname に対して QQmlProperty を作成します。

QQmlProperty::QQmlProperty(const QQmlProperty &other)

other のコピーを作成します。

bool QQmlProperty::connectNotifySignal(QObject *dest, const char *slot) const

プロパティの変更通知シグナルをdest オブジェクトの指定されたslot に接続し、true を返します。このメタプロパティが通常の Qt プロパティを表していない場合、または変更通知シグナルを持たない場合、またはdest オブジェクトが指定されたslot を持たない場合は false を返します。

注意: slot は、正しく識別されるように、SLOT() マクロを使用して渡されるべきです。

bool QQmlProperty::connectNotifySignal(QObject *dest, int method) const

プロパティの変更通知シグナルをdest オブジェクトの指定されたmethod に接続し、true を返します。このメタプロパティが通常の Qt プロパティを表していない場合、または変更通知シグナルを持っていない場合、またはdest オブジェクトが指定されたmethod を持っていない場合は false を返します。

bool QQmlProperty::hasNotifySignal() const

プロパティが変更通知シグナルを持っている場合はtrueを返し、そうでない場合はfalseを返します。

int QQmlProperty::index() const

プロパティの Qt メタオブジェクトインデックスを返します。

bool QQmlProperty::isDesignable() const

プロパティがデザイン可能であれば真を、そうでなければ偽を返します。

bool QQmlProperty::isProperty() const

このQQmlProperty が通常の Qt プロパティを表している場合は true を返します。

bool QQmlProperty::isResettable() const

プロパティがリセット可能であれば真を、そうでなければ偽を返します。

bool QQmlProperty::isSignalProperty() const

このQQmlProperty が QML シグナル・プロパティを表す場合、true を返します。

bool QQmlProperty::isValid() const

QQmlProperty が有効なプロパティを参照していれば真を、そうでなければ偽を返します。

bool QQmlProperty::isWritable() const

このプロパティが書き込み可能であれば真を、そうでなければ偽を返します。

QMetaMethod QQmlProperty::method() const

このプロパティがSignalProperty であればQMetaMethod を返し、そうでなければ無効なQMetaMethod を返す。

QString QQmlProperty::name() const

この QML プロパティの名前を返す。

注: プロパティ名のゲッター関数。

bool QQmlProperty::needsNotifySignal() const

このプロパティが、バインディングを最新に保つために変更通知シグナルを必要とする場合はtrueを返し、そうでない場合はfalseを返します。

アタッチドプロパティや値が変更されないプロパティなど、 変更通知シグナルを必要としないプロパティもあります。

QObject *QQmlProperty::object() const

QQmlPropertyQObject を返します。

注: プロパティ・オブジェクトのゲッター関数。

QMetaProperty QQmlProperty::property() const

この QML プロパティに関連付けられたQt property を返します。

QMetaType QQmlProperty::propertyMetaType() const

プロパティのメタタイプを返します。

propertyTypeも参照してください

int QQmlProperty::propertyType() const

プロパティのメタタイプ ID を返します。プロパティにメタタイプがない場合はQMetaType::UnknownType を返します。

propertyMetaType参照して ください。

QQmlProperty::PropertyTypeCategory QQmlProperty::propertyTypeCategory() const

プロパティのカテゴリを返します。

const char *QQmlProperty::propertyTypeName() const

プロパティの型名を返します。プロパティに型名がない場合は 0 を返します。

QVariant QQmlProperty::read() const

プロパティ値を返します。

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name)

objectname プロパティ値を返します。 このメソッドは、以下と同等です:

QQmlProperty p(object, name);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)

context ctxt を使用して、objectname プロパティ値を返します。このメソッドは、以下と同等です:

QQmlProperty p(object, name, context);
p.read();

[static] QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)

engine が提供する QML コンポーネントのインスタンス化環境を用いて、objectname プロパティ値を返す。このメソッドは以下と等価です:

QQmlProperty p(object, name, engine);
p.read();

bool QQmlProperty::reset() const

プロパティをリセットし、プロパティがリセット可能であればtrueを返します。プロパティがリセット可能でない場合は、何も起こらず、false が返されます。

QQmlProperty::Type QQmlProperty::type() const

プロパティの型を返します。

bool QQmlProperty::write(const QVariant &value) const

プロパティ値をvalue に設定します。成功するとtrue を返し、value の型が間違っているなどの理由でプロパティを設定できない場合はfalse を返します。

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value)

objectname プロパティにvalue を書き込みます。 このメソッドは、以下と同等です:

QQmlProperty p(object, name);
p.write(value);

成功した場合はtrue を、そうでない場合はfalse を返します。

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlContext *ctxt)

context ctxt を使用して、objectname プロパティにvalue を書き込みます。このメソッドは以下と等価です:

QQmlProperty p(object, name, ctxt);
p.write(value);

成功した場合はtrue を返し、そうでない場合はfalse を返す。

[static] bool QQmlProperty::write(QObject *object, const QString &name, const QVariant &value, QQmlEngine *engine)

objectname プロパティにengine が提供する QML コンポーネントのインスタンス化環境を用いてvalue を書き込みます。このメソッドは以下と等価です:

QQmlProperty p(object, name, engine);
p.write(value);

成功した場合はtrue を、そうでない場合はfalse を返します。

QQmlProperty &QQmlProperty::operator=(const QQmlProperty &other)

other をこのQQmlProperty に割り当てます。

bool QQmlProperty::operator==(const QQmlProperty &other) const

other とこのQQmlProperty が同じプロパティを表す場合、true を返します。

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