QMetaProperty Class

QMetaPropertyクラスは、プロパティに関するメタデータを提供します。詳細...

ヘッダー #include <QMetaProperty>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック関数

(since 6.0) QUntypedBindable bindable(QObject *object) const
QMetaEnum enumerator() const
bool hasNotifySignal() const
(since 6.0) bool isBindable() const
bool isConstant() const
bool isDesignable() const
bool isEnumType() const
bool isFinal() const
bool isFlagType() const
bool isReadable() const
bool isRequired() const
bool isResettable() const
bool isScriptable() const
bool isStored() const
bool isUser() const
bool isValid() const
bool isWritable() const
(since 6.0) QMetaType metaType() const
const char *name() const
QMetaMethod notifySignal() const
int notifySignalIndex() const
int propertyIndex() const
QVariant read(const QObject *object) const
QVariant readOnGadget(const void *gadget) const
int relativePropertyIndex() const
bool reset(QObject *object) const
bool resetOnGadget(void *gadget) const
int revision() const
(since 6.0) int typeId() const
const char *typeName() const
int userType() const
bool write(QObject *object, const QVariant &value) const
(since 6.6) bool write(QObject *object, QVariant &&v) const
bool writeOnGadget(void *gadget, const QVariant &value) const
(since 6.6) bool writeOnGadget(void *gadget, QVariant &&value) const

詳細説明

プロパティのメタデータは、オブジェクトのメタオブジェクトから取得される。詳細はQMetaObject::property() とQMetaObject::propertyCount() を参照。

プロパティのメタデータ

プロパティは、name ()、metaType ()、およびその動作を指定するさまざまな属性(isReadable ()、isWritable ()、isDesignable ()、isScriptable ()、revision ()、isStored ()を持ちます。

プロパティが列挙型の場合、isEnumType() は、true を返す。プロパティがフラグでもある列挙型(つまり、OR演算子を使って値を組み合わせることができる)の場合、isEnumType() とisFlagType() は、どちらも真を返す。これらの型の列挙子は、enumerator()から利用できる。

プロパティの値の設定と取得は、read()、write()、reset()で行います。QObject のset関数とget関数で変更することもできます。詳細はQObject::setProperty() およびQObject::property() を参照。

コピーと代入

QMetaPropertyオブジェクトは値によってコピーすることができます。ただし、各コピーは同じプロパティのメタデータを参照します。

QMetaObject,QMetaEnum,QMetaMethod,Qtのプロパティシステムも参照してください

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

[since 6.0] QUntypedBindable QMetaProperty::bindable(QObject *object) const

指定 し たobject のプ ロ パテ ィ に対す る 、 バ イ ンデ ィ ン グ可能な イ ン タ フ ェース を返 し ます。

プロパティがバインディングをサポートしていない場合、返されるインターフェイスは無効です。

この関数は Qt 6.0 で導入されました。

QObjectBindableProperty,QProperty,isBindable()も参照してください

QMetaEnum QMetaProperty::enumerator() const

このプロパティの型が列挙型であれば列挙型を返し、そうでなければ戻り値は未定義です。

isEnumType() およびisFlagType()も参照してください

bool QMetaProperty::hasNotifySignal() const

このプロパティに対応する変更通知シグナルがあればtrue を返し、なければfalse を返す。

notifySignal()も参照

[since 6.0] bool QMetaProperty::isBindable() const

Q_PROPERTY() がバインディング機能を公開している場合はtrue を返し、そうでない場合は false を返します。

これは、このプロパティを依存として使用するバインディングを作成したり、このプロパティにQPropertyObserverオブジェクトをインストールできることを意味します。プロパティが読み取り専用でない限り、このプロパティにバインディングを設定することもできます。

この関数は Qt 6.0 で導入されました。

QProperty,isWritable(),bindable()も参照してください

bool QMetaProperty::isConstant() const

プロパティが定数であればtrue を返し、そうでなければfalse を返す。

Q_PROPERTY()CONSTANT 属性が設定されている場合、プロパティは一定です。

bool QMetaProperty::isDesignable() const

Q_PROPERTY()DESIGNABLE 属性が false の場合はfalse を返し、そうでない場合はtrue を返す。

isScriptable() およびisStored()も参照

bool QMetaProperty::isEnumType() const

プロパティの型が列挙値の場合はtrue を返し、そうでない場合はfalse を返す。

enumerator() およびisFlagType()も参照

bool QMetaProperty::isFinal() const

プロパティが final であればtrue を返し、そうでなければfalse を返す。

Q_PROPERTY()FINAL 属性が設定されている場合、プロパティは final です。

bool QMetaProperty::isFlagType() const

プロパティの型がフラグとして使用される列挙値の場合はtrue を返し、そうでない場合はfalse を返す。

フラグは OR 演算子を使って組み合わせることができます。フラグ型は暗黙的に列挙型でもあります。

isEnumType()、enumerator()、QMetaEnum::isFlag()も参照

bool QMetaProperty::isReadable() const

このプロパティが読み取り可能な場合はtrue を返し、そうでない場合はfalse を返す。

isWritable()、read()、isValid()も参照

bool QMetaProperty::isRequired() const

プロパティが必須であればtrue を返し、そうでなければfalse を返す。

Q_PROPERTY()REQUIRED 属性が設定されている場合、プロパティは確定となります。

bool QMetaProperty::isResettable() const

このプロパティをデフォルト値にリセットできる場合はtrue を返し、そうでない場合はfalse を返す。

reset()も参照

bool QMetaProperty::isScriptable() const

Q_PROPERTY()SCRIPTABLE 属性が false の場合はfalse を返し、そうでない場合は true を返す。

isDesignable() およびisStored()も参照

bool QMetaProperty::isStored() const

プロパティが格納されている場合はtrue を返し、そうでない場合は false を返す。

この関数は、Q_PROPERTY()'のSTORED 属性が false の場合はfalse を返し、そうでない場合は true を返します。

isDesignable() およびisScriptable()も参照してください

bool QMetaProperty::isUser() const

Q_PROPERTY()USER 属性が偽の場合、false を返す。そうでない場合は真を返し、そのプロパティがUSER プロパティとして指定されていること、つまり、ユーザが編集できるプロパティ、または他の何らかの方法で重要なプロパティであることを示します。

QMetaObject::userProperty()、isDesignable()、isScriptable()も参照してください

bool QMetaProperty::isValid() const

このプロパティが有効(読み取り可能)な場合はtrue を返し、そうでない場合はfalse を返す。

isReadable()も参照

bool QMetaProperty::isWritable() const

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

isReadable() およびwrite()も参照

[since 6.0] QMetaType QMetaProperty::metaType() const

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

この関数は Qt 6.0 で導入されました。

QMetaTypeも参照してください

const char *QMetaProperty::name() const

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

type() およびtypeName()も参照

QMetaMethod QMetaProperty::notifySignal() const

プロパティ変更通知シグナルが指定されている場合はそのQMetaMethod インスタンスを返し、そうでない場合は無効なQMetaMethod を返します。

hasNotifySignal()も参照

int QMetaProperty::notifySignalIndex() const

プロパティの変更を通知するシグナルが指定されていればそのインデックスを返し、そうでなければ -1 を返します。

hasNotifySignal()も参照してください

int QMetaProperty::propertyIndex() const

このプロパティのインデックスを返します。

QVariant QMetaProperty::read(const QObject *object) const

与えられたobject からプロパティの値を読み込みます。読み込めた場合はその値を返し、そうでない場合は無効な variant を返します。

write()、reset()、isReadable()も参照して ください。

QVariant QMetaProperty::readOnGadget(const void *gadget) const

与えられたgadget からプロパティの値を読み込みます。そうでなければ無効なバリアントを返します。

この関数は、このプロパティがQ_GADGET

int QMetaProperty::relativePropertyIndex() const

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

bool QMetaProperty::reset(QObject *object) const

与えられたobject のプロパティを reset メソッドでリセットする。リセットが成功した場合はtrue を返し、失敗した場合はfalse を返します。

リセット・メソッドはオプションです。

read() およびwrite()も参照して ください。

bool QMetaProperty::resetOnGadget(void *gadget) const

与えられたgadget のプロパティを reset メソッドでリセットする。リセットが成功した場合はtrue を返し、失敗した場合はfalse を返します。

リセット・メソッドはオプションであり、一部のプロパティのみが対応しています。

この関数は、このプロパティがQ_GADGET

int QMetaProperty::revision() const

Q_REVISIONQt 6.0 以降、非ゼロ値はエンコードされ、QTypeRevision::fromEncodedVersion() を使ってデコードできます。

[since 6.0] int QMetaProperty::typeId() const

プロパティの格納タイプを返します。これはmetaType().id() と同じです。

この関数は Qt 6.0 で導入されました。

QMetaTypetypeName()、metaType()も参照してください

const char *QMetaProperty::typeName() const

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

type() およびname()も参照

int QMetaProperty::userType() const

このプロパティのユーザー・タイプを返します。戻り値は、QMetaType で登録されている値のいずれかです。

これは、metaType().id() と同等です。

type()、QMetaTypetypeName()、metaType()も参照してください

bool QMetaProperty::write(QObject *object, const QVariant &value) const

与えられたobject に、プロパティの値としてvalue を書き込む。書き込みに成功した場合は true を返し、失敗した場合はfalse を返します。

value がプロパティと同じ型でない場合は、変換が試みられます。空の QVariant() は、このプロパティがリセット可能な場合はreset() を呼び出すのと同じであり、そうでない場合はデフォルトで構 成されたオブジェクトを設定します。

注意: この関数は、内部的にvalue のコピーを作成します。 可能な場合は、rvalue オーバーロードを使用することをお勧めします。

read()、reset()、isWritable()も参照

[since 6.6] bool QMetaProperty::write(QObject *object, QVariant &&v) const

これはオーバーロードされた関数です。

この関数は Qt 6.6 で導入されました。

bool QMetaProperty::writeOnGadget(void *gadget, const QVariant &value) const

与えられたgadget に、プロパティの値としてvalue を書き込む。書き込みに成功した場合は true を返し、失敗した場合はfalse を返します。

この関数は、このプロパティがQ_GADGET

[since 6.6] bool QMetaProperty::writeOnGadget(void *gadget, QVariant &&value) const

これはオーバーロードされた関数です。

この関数は Qt 6.6 で導入されました。

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