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::InvalidCategory | 0 | プロパティが無効であるか、シグナルプロパティである。 |
QQmlProperty::List | 1 | プロパティはQQmlListProperty リストプロパティです。 |
QQmlProperty::Object | 2 | プロパティはQObject 派生型ポインタです。 |
QQmlProperty::Normal | 3 | プロパティは通常の値です。 |
enum QQmlProperty::Type
この列挙型は QML プロパティの型を指定します。
定数 | 値 | 説明 |
---|---|---|
QQmlProperty::Invalid | 0 | プロパティは無効です。 |
QQmlProperty::Property | 1 | プロパティは通常の Qt プロパティです。 |
QQmlProperty::SignalProperty | 2 | プロパティはシグナルプロパティです。 |
メンバー関数ドキュメント
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
QQmlProperty のQObject を返します。
注: プロパティ・オブジェクトのゲッター関数。
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)
object のname プロパティ値を返します。 このメソッドは、以下と同等です:
QQmlProperty p(object, name); p.read();
[static]
QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlContext *ctxt)
context ctxt を使用して、object のname プロパティ値を返します。このメソッドは、以下と同等です:
QQmlProperty p(object, name, context); p.read();
[static]
QVariant QQmlProperty::read(const QObject *object, const QString &name, QQmlEngine *engine)
engine が提供する QML コンポーネントのインスタンス化環境を用いて、object のname プロパティ値を返す。このメソッドは以下と等価です:
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)
object のname プロパティに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 を使用して、object のname プロパティに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)
object のname プロパティに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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。