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 |
(since 6.11) bool | isOverride() const |
| bool | isReadable() const |
| bool | isRequired() const |
| bool | isResettable() const |
| bool | isScriptable() const |
| bool | isStored() const |
| bool | isUser() const |
| bool | isValid() const |
(since 6.11) bool | isVirtual() 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()はどちらもtrueを返します。これらの型の列挙子には、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()も参照してください 。
[since 6.11] bool QMetaProperty::isOverride() const
プロパティがオーバーライドされている場合は `true ` を返し、そうでない場合は `false` を返します。
Q_PROPERTY() のOVERRIDE 属性が設定されている場合、そのプロパティはオーバーライドされています。
この関数は Qt 6.11 で導入されました。
bool QMetaProperty::isReadable() const
このプロパティが読み取り可能な場合は `true ` を返し、そうでない場合は `false` を返します。
isWritable()、read()、およびisValid()も参照してください 。
bool QMetaProperty::isRequired() const
プロパティが必須の場合は `true ` を返し、そうでない場合は `false` を返します。
Q_PROPERTY() のREQUIRED 属性が設定されている場合、そのプロパティは final となります。
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の場合、false を返します。それ以外の場合はtrueを返し、そのプロパティがUSER プロパティ、すなわちユーザーが編集できる、あるいは何らかの形で重要なプロパティとして指定されていることを示します。
QMetaObject::userProperty()、isDesignable()、およびisScriptable()も参照してください 。
bool QMetaProperty::isValid() const
このプロパティが有効(読み取り可能)な場合は `true ` を返し、そうでない場合は `false` を返します。
isReadable()も参照してください 。
[since 6.11] bool QMetaProperty::isVirtual() const
プロパティが仮想プロパティである場合は `true ` を返し、そうでない場合は `false` を返します。
Q_PROPERTY() のVIRTUAL 属性が設定されている場合、そのプロパティは仮想プロパティとなります。
この関数は Qt 6.11 で導入されました。
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 からプロパティの値を読み取ります。読み取りに成功した場合はその値を返し、失敗した場合は無効なバリアントを返します。
write()、reset()、およびisReadable()も参照してください 。
QVariant QMetaProperty::readOnGadget(const void *gadget) const
指定されたgadget からプロパティの値を読み取ります。読み取りに成功した場合はその値を返し、失敗した場合は無効なバリアントを返します。
この関数は、これがのプロパティである場合にのみ使用してください。Q_GADGET
int QMetaProperty::relativePropertyIndex() const
このプロパティが、それを囲むメタオブジェクト内で相対的にどの位置にあるかを返します。
bool QMetaProperty::reset(QObject *object) const
指定されたobject のプロパティを、リセットメソッドを使用してリセットします。リセットが成功した場合はtrue を返し、失敗した場合はfalse を返します。
リセットメソッドはオプションであり、これをサポートしているプロパティはごく一部です。
bool QMetaProperty::resetOnGadget(void *gadget) const
指定されたgadget のプロパティを、リセットメソッドを使用してリセットします。リセットが成功した場合はtrue を返し、失敗した場合はfalse を返します。
リセットメソッドはオプションであり、これをサポートしているプロパティはごくわずかです。
この関数は、これがQ_GADGET
int QMetaProperty::revision() const
Q_REVISION で指定されている場合はプロパティrevisionを返し、指定されていない場合は0を返します。Qt 6.0以降、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 で導入されました。
© 2026 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.