1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cryfeifei-QtDocumentCN

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
QMetaProperty.md 16 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
ZgblKylin Отправлено 26.07.2020 17:11 7885aa3

QMetaProperty 类

QMetaProperty 类提供了对应一条属性的元数据。更多内容...

属性 内容
头文件 #include <QMetaProperty>
qmake: QT += core

公共成员函数

返回类型 函数
QMetaEnum enumerator() const
bool hasNotifySignal() const
bool isConstant() const
bool isDesignable(const QObject *object = nullptr) const
bool isEnumType() const
bool isFinal() const
bool isFlagType() const
bool isReadable() const
bool isRequired() const
bool isResettable() const
bool isScriptable(const QObject *object = nullptr) const
bool isStored(const QObject *object = nullptr) const
bool isUser(const QObject *object = nullptr) const
bool isValid() const
bool isWritable() 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
QVariant::Type type() const
const char * typeName() const
int userType() const
bool write(QObject *object, const QVariant &value) const
bool writeOnGadget(void *gadget, const 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 的 get 和 set 函数来操作,详见 QObject::setProperty() 和 QObject::property()。

拷贝与赋值

QMetaProperty 对象可以通过传值方式拷贝,与此同时,每份副本内部都会指向相同的属性元数据。

另请参阅:QMetaObjectQMetaEnumQMetaMethodQt 属性系统

成员函数文档

QMetaEnum QMetaProperty::enumerator() const

若该属性是枚举类型,则返回对应的枚举器,否则返回未定义值。

另请参阅:isEnumType() 和 isFlagType()。


bool QMetaProperty::hasNotifySignal() const

若该属性有对应的通知信号则返回 true,否则返回 false

另请参阅:notifySignal()。


bool QMetaProperty::isConstant() const

若该属性在 Q_PROPERTY()' 中被标记为 CONSTANT 则返回 true,否则返回 false

本函数在 Qt 4.6 中被引入。


bool QMetaProperty::isDesignable(const QObject *object = nullptr) const

若该属性可被设计师(Qt Designer)编辑则返回 true,否则返回 false

object 未被指定,则当 Q_PROPERTY()DESIGNABLE 标记被指定为 false时,此函数返回 false ;其它情况下返回 true(若该标记被指定为 true,或指定为某个函数,或指定为表达式)。

另请参阅:isScriptable() 和 isStored()。


bool QMetaProperty::isEnumType() const

若该属性是枚举类型则返回 true,否则返回 false

另请参阅:enumerator() 和 isFlagType()。


bool QMetaProperty::isFinal() const

若该属性在 Q_PROPERTY() 中被标记为 FINAL 则返回 true,否则返回 false

本函数在 Qt 4.6 中被引入。


bool QMetaProperty::isFlagType() const

若该属性是标志位则返回 true,否则返回 false

标志位可以通过运算合并多个值。标志位通常也是枚举类型。

另请参阅:isEnumType(),enumerator() 和 QMetaEnum::isFlag()。


bool QMetaProperty::isReadable() const

若该属性可被读取则返回 true,否则返回 false

另请参阅:isWritable(),read() 和 isValid()。


bool QMetaProperty::isRequired() const

若该属性在 Q_PROPERTY() 中被标记为 REQUIRED 则返回 true,否则返回 false

本函数在 Qt 5.15 中被引入。


bool QMetaProperty::isResettable() const

若该属性可被重置为默认值则返回 true,否则返回 false

另请参阅:reset()。


bool QMetaProperty::isScriptable(const QObject *object = nullptr) const

若该属性可被脚本化则返回 true,否则返回 false

object 未被指定,则当 Q_PROPERTY()SCRIPTABLE 标记被指定为 false时,此函数返回 false ;其它情况下返回 true(若该标记被指定为 true,或指定为某个函数,或指定为表达式)。

另请参阅:isDesignable() 和 isStored()。


bool QMetaProperty::isStored(const QObject *object = nullptr) const

若该属性可存储则返回 true,否则返回 false

object 未被指定,则当 Q_PROPERTY()STORED 标记被指定为 false时,此函数返回 false ;其它情况下返回 true(若该标记被指定为 true,或指定为某个函数,或指定为表达式)。

另请参阅:isDesignable() 和 isScriptable().


bool QMetaProperty::isUser(const QObject *object = nullptr) const

若该属性被设计为 USER 性质则返回 true,即可以在 object 中被用户编辑,或在某些方面很重要;其它情况下返回 false。例如,QLineEdittext 属性是 USER 可编辑的。

objectnullptr,则当 Q_PROPERTY()STORED 标记被指定为 false时,此函数返回 false ;其它情况下返回 true

另请参阅:QMetaObject::userProperty(),isDesignable() 和 isScriptable()。


bool QMetaProperty::isValid() const

若该属性是有效的(可读)则返回 true,否则返回 false

另请参阅:isReadable()。


bool QMetaProperty::isWritable() const

若该属性可被写入则返回 true,否则返回 false

另请参阅:isReadable() 和 write()。


const char *QMetaProperty::name() const

返回本属性的名称。

另请参阅:type() 和 typeName()。


QMetaMethod QMetaProperty::notifySignal() const

若已为本属性指定数值修改时发送的通知信号,则返回该通知信号对应的 QMetaMethod 实例,否则返回无效的 QMetaMethod 对象。

本函数在 Qt 4.5 中被引入。

另请参阅:hasNotifySignal()、

int QMetaProperty::notifySignalIndex() const

若已为本属性指定数值修改时发送的通知信号,则返回该通知信号的索引编号,否则返回 -1

本函数在 Qt 4.6 中被引入。

另请参阅:hasNotifySignal()。


int QMetaProperty::propertyIndex() const

返回本属性的索引编号。

本函数在 Qt 4.6 中被引入。


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

读取给定的 object 中的本属性,若可以读取则返回属性值,否则返回无效的 QVariant

另请参阅:write(),reset() 和 isReadable()。

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

读取给定的 gadget 中的本属性,若可以读取则返回属性值,否则返回无效的 QVariant

当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。

本函数在 Qt 5.5 中被引入。


int QMetaProperty::relativePropertyIndex() const

返回本属性在对应的元对象中的相对索引编号。

本函数在 Qt 5.14 中被引入。-


bool QMetaProperty::reset(QObject *object) const

通过重置方法重置给定的 object 中的本属性。若重置成功则返回 true,否则返回 false

重置方法是可选的,只有少量属性支持重置。

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


bool QMetaProperty::resetOnGadget(void *gadget) const

通过重置方法重置给定的 gadget 中的本属性。若重置成功则返回 true,否则返回 false

重置方法是可选的,只有少量属性支持重置。

当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。

本函数在 Qt 5.5 中被引入。


int QMetaProperty::revision() const

若该属性被 REVISION 标记,则返回对应的版本,否则返回 0

本函数在 Qt 5.1 中被引入。


QVariant::Type QMetaProperty::type() const

返回本属性的类型。返回值是 QVariant::Type 的枚举值之。

另请参阅:userType(),typeName() 和 name()。


const char *QMetaProperty::typeName() const

返回本属性的类型名称。

另请参阅:type() 和 name()。


int QMetaProperty::userType() const

返回本属性的用户类型。返回值是 QMetaType 中注册的类型之一,若该类型未被注册则返回 QMetaType::UnknownType

本函数在 Qt 4.2 中被引入。

另请参阅:type(),QMetaTypetypeName()。


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

value 写入到给定的 object 的本属性中,若写入成功则返回 true,否则返回 false

value 与本属性类型不一致,则会尝试进行自动转换。若本属性是可重置的,则传入空的 QVariant() 等价于调用 reset(),否则等价于设置为默认值。

另请参阅:read(),reset() 和 isWritable()。


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

value 写入到给定的 gadget 的本属性中,若写入成功则返回 true,否则返回 false

当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。

本函数在 Qt 5.5 中被引入。

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cryfeifei-QtDocumentCN.git
git@api.gitlife.ru:oschina-mirror/cryfeifei-QtDocumentCN.git
oschina-mirror
cryfeifei-QtDocumentCN
cryfeifei-QtDocumentCN
master