QMetaProperty 类

QMetaProperty 类提供了关于属性元数据的支持。 更多...

头文件 #include <QMetaProperty>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

公共函数

(自 6.0) QUntypedBindablebindable(QObject *object) const
QMetaEnumenumerator() const
boolhasNotifySignal() const
(自 6.0) boolisBindable() const
boolisConstant() const
boolisDesignable() const
boolisEnumType() const
boolisFinal() const
boolisFlagType() const
boolisReadable() const
boolisRequired() const
boolisResettable() const
boolisScriptable() const
boolisStored() const
boolisUser() const
boolisValid() const
boolisWritable() const
(自 6.0) QMetaTypemetaType() const
const char *name() const
QMetaMethodnotifySignal() const
intnotifySignalIndex() const
intpropertyIndex() const
QVariantread(const QObject *object) const
QVariantreadOnGadget(const void *gadget) const
intrelativePropertyIndex() const
boolreset(QObject *object) const
boolresetOnGadget(void *gadget) const
intrevision() const
(自 6.0) inttypeId() const
const char *typeName() const
intuserType() const
boolwrite(QObject *object, const QVariant &value) const
(自 6.6) boolwrite(QObject *object, QVariant &&v) const
boolwriteOnGadget(void *gadget, const QVariant &value) const
(自 6.6) boolwriteOnGadget(void *gadget, QVariant &&value) const

详细说明

属性元数据是从对象的元对象获得的。有关详细信息,请参阅QMetaObject::property()和QMetaObject::propertyCount()。

属性元数据

属性有一个name()和一个type(),以及指定其行为的各种属性:isReadable(),isWritable(),isDesignable(),isScriptable(),revision(),以及isStored()。

如果属性是枚举类型,isEnumType()返回true;如果属性是同时也是标志的枚举(即其值可以使用或运算符组合),isEnumType()和isFlagType()都返回true。这些类型的枚举可以从enumerator()获得。

使用read(),write()和reset()设置和检索属性的值;也可以通过QObject的设置和获取函数进行更改。有关详细信息,请参阅QObject::setProperty()和QObject::property()。

复制和赋值

QMetaProperty对象可以通过值进行复制。但是,每个副本都将引用相同的底层属性元数据。

另请参阅QMetaObjectQMetaEnumQMetaMethodQt的属性系统

成员函数说明

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

返回给定object上属性的绑定接口。

如果该属性不支持绑定,返回的接口将无效。

此函数自Qt 6.0开始引入。

另请参阅QObjectBindablePropertyQPropertyisBindable()。

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开始引入。

另请参阅 QPropertyisWritable(),和 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

如果属性是最终的,则返回 true;否则返回 false

如果 Q_PROPERTY()FINAL 属性被设置,则属性是最终的。

bool QMetaProperty::isFlagType() const

如果属性的类型的枚举值被用作标志,则返回 true;否则返回 false

可以使用 OR 运算符组合标志。标志类型隐式也是枚举类型。

另请参阅 isEnumTypeenumerator,和 QMetaEnum::isFlag

bool QMetaProperty::isReadable() const

如果此属性是可读的,则返回 true;否则返回 false

另请参阅 isWritableread,和 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,则返回 false。否则返回 true,表示属性被指定为 USER 属性,即用户可以编辑的或以其他方式具有意义的属性。

参考以下内容 QMetaObject::userPropertyisDesignableisScriptable().

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 读取属性的值。如果能读取,则返回该值;否则返回一个无效的变量。

参考以下内容 writeresetisReadable().

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

从给定的组件中读取属性值。如果能读取到,则返回该值;否则返回无效变体。

此函数仅应在属性属于Q_GADGET时使用。

int QMetaProperty::relativePropertyIndex() const

返回此属性在封装元对象内的相对索引。

bool QMetaProperty::reset(QObject *object) const

使用重置方法重置给定对象的属性。如果重置成功,则返回true;否则返回false。

重置方法是可选的;只有少数属性支持它们。

另请参阅read() 和 write()。

bool QMetaProperty::resetOnGadget(void *gadget) const

使用重置方法重置给定组件的属性。如果重置成功,则返回true;否则返回false。

重置方法是可选的;只有少数属性支持它们。

此函数仅应在属性属于Q_GADGET时使用。

int QMetaProperty::revision() const

如果指定了REVISION,则返回属性修订版;否则返回0。

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

返回属性存储类型。这与metaType().id()相同。

此函数自Qt 6.0开始引入。

另请参阅QMetaTypetypeNamemetaType

const char * QMetaProperty::typeName() const

返回此属性类型的名称。

另请参阅typename

int QMetaProperty::userType() const

返回此属性的用户类型。返回值是QMetaType注册的值之一。

这等价于metaType().id()

另请参阅typeQMetaTypetypeNamemetaType

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

作为属性值写入给定对象。如果写入成功,则返回true;否则返回false。

如果与属性的类型不同,则尝试转换。一个空的QVariant()等价于调用reset(),如果此属性可重置,或者否则设置默认构造的对象。

注意:此函数内部会复制。当可能时,请使用右值重载。

另请参阅readresetisWritable

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

这是一个重载函数。

此功能自 Qt 6.6 版本开始引入。

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

value 写入到指定的 gadget 属性中。如果写入成功则返回 true;否则返回 false

此函数仅应在属性属于Q_GADGET时使用。

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

这是一个重载函数。

此功能自 Qt 6.6 版本开始引入。

© 2024 Qt 公司。文档贡献者的版权属于他们各自。此文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 许可的。Qt 及相关标志是芬兰的 Qt 公司及其在全球其他国家的商标。所有其他商标均为其各自拥有者的财产。