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 对象可以通过传值方式拷贝,与此同时,每份副本内部都会指向相同的属性元数据。
另请参阅:QMetaObject,QMetaEnum,QMetaMethod 和 Qt 属性系统。
若该属性是枚举类型,则返回对应的枚举器,否则返回未定义值。
另请参阅:isEnumType() 和 isFlagType()。
若该属性有对应的通知信号则返回 true
,否则返回 false
。
另请参阅:notifySignal()。
若该属性在 Q_PROPERTY()
' 中被标记为 CONSTANT
则返回 true
,否则返回 false
。
本函数在 Qt 4.6 中被引入。
若该属性可被设计师(Qt Designer)编辑则返回 true
,否则返回 false
。
若 object
未被指定,则当 Q_PROPERTY()
的 DESIGNABLE
标记被指定为 false
时,此函数返回 false
;其它情况下返回 true
(若该标记被指定为 true
,或指定为某个函数,或指定为表达式)。
另请参阅:isScriptable() 和 isStored()。
若该属性是枚举类型则返回 true
,否则返回 false
。
另请参阅:enumerator() 和 isFlagType()。
若该属性在 Q_PROPERTY()
中被标记为 FINAL
则返回 true
,否则返回 false
。
本函数在 Qt 4.6 中被引入。
若该属性是标志位则返回 true
,否则返回 false
。
标志位可以通过或运算合并多个值。标志位通常也是枚举类型。
另请参阅:isEnumType(),enumerator() 和 QMetaEnum::isFlag()。
若该属性可被读取则返回 true
,否则返回 false
。
另请参阅:isWritable(),read() 和 isValid()。
若该属性在 Q_PROPERTY()
中被标记为 REQUIRED
则返回 true
,否则返回 false
。
本函数在 Qt 5.15 中被引入。
若该属性可被重置为默认值则返回 true
,否则返回 false
。
另请参阅:reset()。
若该属性可被脚本化则返回 true
,否则返回 false
。
若 object
未被指定,则当 Q_PROPERTY()
的 SCRIPTABLE
标记被指定为 false
时,此函数返回 false
;其它情况下返回 true
(若该标记被指定为 true
,或指定为某个函数,或指定为表达式)。
另请参阅:isDesignable() 和 isStored()。
若该属性可存储则返回 true
,否则返回 false
。
若 object
未被指定,则当 Q_PROPERTY()
的 STORED
标记被指定为 false
时,此函数返回 false
;其它情况下返回 true
(若该标记被指定为 true
,或指定为某个函数,或指定为表达式)。
另请参阅:isDesignable() 和 isScriptable().
若该属性被设计为 USER
性质则返回 true
,即可以在 object
中被用户编辑,或在某些方面很重要;其它情况下返回 false
。例如,QLineEdit 的 text
属性是 USER
可编辑的。
若 object
是 nullptr
,则当 Q_PROPERTY()
的 STORED
标记被指定为 false
时,此函数返回 false
;其它情况下返回 true
。
另请参阅:QMetaObject::userProperty(),isDesignable() 和 isScriptable()。
若该属性是有效的(可读)则返回 true
,否则返回 false
。
另请参阅:isReadable()。
若该属性可被写入则返回 true
,否则返回 false
。
另请参阅:isReadable() 和 write()。
返回本属性的名称。
若已为本属性指定数值修改时发送的通知信号,则返回该通知信号对应的 QMetaMethod 实例,否则返回无效的 QMetaMethod 对象。
本函数在 Qt 4.5 中被引入。
另请参阅:hasNotifySignal()、
若已为本属性指定数值修改时发送的通知信号,则返回该通知信号的索引编号,否则返回 -1
。
本函数在 Qt 4.6 中被引入。
另请参阅:hasNotifySignal()。
返回本属性的索引编号。
本函数在 Qt 4.6 中被引入。
读取给定的 object
中的本属性,若可以读取则返回属性值,否则返回无效的 QVariant
。
另请参阅:write(),reset() 和 isReadable()。
读取给定的 gadget
中的本属性,若可以读取则返回属性值,否则返回无效的 QVariant
。
当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。
本函数在 Qt 5.5 中被引入。
返回本属性在对应的元对象中的相对索引编号。
本函数在 Qt 5.14 中被引入。-
通过重置方法重置给定的 object
中的本属性。若重置成功则返回 true
,否则返回 false
。
重置方法是可选的,只有少量属性支持重置。
通过重置方法重置给定的 gadget
中的本属性。若重置成功则返回 true
,否则返回 false
。
重置方法是可选的,只有少量属性支持重置。
当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。
本函数在 Qt 5.5 中被引入。
若该属性被 REVISION
标记,则返回对应的版本,否则返回 0
。
本函数在 Qt 5.1 中被引入。
返回本属性的类型。返回值是 QVariant::Type
的枚举值之。
另请参阅:userType(),typeName() 和 name()。
返回本属性的类型名称。
返回本属性的用户类型。返回值是 QMetaType 中注册的类型之一,若该类型未被注册则返回 QMetaType::UnknownType。
本函数在 Qt 4.2 中被引入。
另请参阅:type(),QMetaType 和 typeName()。
将 value
写入到给定的 object
的本属性中,若写入成功则返回 true
,否则返回 false
。
若 value
与本属性类型不一致,则会尝试进行自动转换。若本属性是可重置的,则传入空的 QVariant()
等价于调用 reset(),否则等价于设置为默认值。
另请参阅:read(),reset() 和 isWritable()。
将 value
写入到给定的 gadget
的本属性中,若写入成功则返回 true
,否则返回 false
。
当且仅当本属性是 Q_GADGET 中的属性时,才可使用此函数。
本函数在 Qt 5.5 中被引入。
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )