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
このプロパティの名前を返します。
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
を返します。
リセット・メソッドはオプションです。
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 で導入されました。
QMetaType 、typeName()、metaType()も参照してください 。
const char *QMetaProperty::typeName() const
このプロパティの型の名前を返します。
int QMetaProperty::userType() const
このプロパティのユーザー・タイプを返します。戻り値は、QMetaType で登録されている値のいずれかです。
これは、metaType().id() と同等です。
type()、QMetaType 、typeName()、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.