PySide6.QtCore.QMetaProperty

class QMetaProperty

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

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

属性元数据是从对象的元对象中获取的。详情请参见property()propertyCount()

属性元数据

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

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

属性的值通过read()write()reset()来设置和获取;它们也可以通过QObject的set和get函数来更改。详情请参见setProperty()property()

复制和赋值

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

__init__()
enumerator()
Return type:

QMetaEnum

如果此属性的类型是枚举类型,则返回枚举器;否则返回的值未定义。

另请参阅

isEnumType() isFlagType()

hasNotifySignal()
Return type:

布尔

如果此属性具有相应的更改通知信号,则返回 true;否则返回 false

另请参阅

notifySignal()

hasStdCppSet()
Return type:

布尔

isAlias()
Return type:

布尔

isBindable()
Return type:

布尔

如果Q_PROPERTY()暴露了绑定功能,则返回true;否则返回false。

这意味着你可以创建使用此属性作为依赖项的绑定,或者在此属性上安装QPropertyObserver对象。除非该属性是只读的,否则你也可以在此属性上设置绑定。

另请参阅

QProperty isWritable() bindable()

isConstant()
Return type:

布尔

如果属性是常量,则返回true;否则返回false

如果Q_PROPERTY()CONSTANT属性被设置,则该属性是常量。

isDesignable()
Return type:

布尔

如果Q_PROPERTY()DESIGNABLE属性为false,则返回false;否则返回true

另请参阅

isScriptable() isStored()

isEnumType()
Return type:

布尔

如果属性的类型是枚举值,则返回true;否则返回false

另请参阅

enumerator() isFlagType()

isFinal()
Return type:

布尔

如果属性是final,则返回true;否则返回false

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

isFlagType()
Return type:

布尔

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

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

isReadable()
Return type:

布尔

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

isRequired()
Return type:

布尔

如果属性是必需的,则返回true;否则返回false

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

isResettable()
Return type:

布尔

如果此属性可以重置为默认值,则返回 true;否则返回 false

另请参阅

reset()

isScriptable()
Return type:

布尔

如果Q_PROPERTY()SCRIPTABLE属性为false,则返回false;否则返回true。

另请参阅

isDesignable() isStored()

isStored()
Return type:

布尔

如果属性已存储,则返回true;否则返回false。

如果Q_PROPERTY()STORED属性为false,则函数返回false;否则返回true。

isUser()
Return type:

布尔

如果Q_PROPERTY()USER属性为false,则返回false。否则返回true,表示该属性被指定为USER属性,即用户可以编辑或以其他方式重要的属性。

isValid()
Return type:

布尔

如果此属性有效(可读),则返回true;否则返回false

另请参阅

isReadable()

isWritable()
Return type:

布尔

如果此属性可写,则返回true;否则返回false。

另请参阅

isReadable() write()

metaType()
Return type:

QMetaType

返回此属性的QMetaType

另请参阅

QMetaType

name()
Return type:

字符串

返回此属性的名称。

另请参阅

type() typeName()

notifySignal()
Return type:

QMetaMethod

返回属性更改通知信号的QMetaMethod实例,如果指定了信号,否则返回无效的QMetaMethod

另请参阅

hasNotifySignal()

notifySignalIndex()
Return type:

整数

如果指定了属性更改通知信号,则返回其索引,否则返回-1。

另请参阅

hasNotifySignal()

propertyIndex()
Return type:

整数

返回此属性的索引。

read(obj)
Parameters:

objQObject

Return type:

对象

从给定的object中读取属性的值。如果能够读取,则返回该值;否则返回一个无效的变体。

readOnGadget(gadget)
Parameters:

小工具void

Return type:

对象

从给定的gadget读取属性的值。如果能够读取,则返回该值;否则返回一个无效的变体。

只有在这是Q_GADGET的属性时,才应使用此函数。

relativePropertyIndex()
Return type:

整数

返回此属性在封闭元对象中的相对索引。

reset(obj)
Parameters:

objQObject

Return type:

布尔

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

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

另请参阅

read() write()

resetOnGadget(gadget)
Parameters:

小工具void

Return type:

布尔

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

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

只有在这是Q_GADGET的属性时,才应使用此函数。

revision()
Return type:

整数

如果通过Q_REVISION指定了属性修订版本,则返回该修订版本,否则返回0。自Qt 6.0起,非零值被编码,可以使用fromEncodedVersion()进行解码。

typeId()
Return type:

整数

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

typeName()
Return type:

字符串

返回此属性类型的名称。

另请参阅

type() name()

userType()
Return type:

整数

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

这相当于 metaType() .id()

另请参阅

type() QMetaType typeName() metaType()

write(obj, value)
Parameters:
Return type:

布尔

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

如果value与属性的类型不同,将尝试进行转换。一个空的QVariant()相当于调用reset()(如果此属性可重置),否则设置为默认构造的对象。

注意

此函数内部会复制value。尽可能使用右值重载。

另请参阅

read() reset() isWritable()

writeOnGadget(gadget, value)
Parameters:
  • 小工具void

  • value – 对象

Return type:

布尔

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

只有在这是Q_GADGET的属性时,才应使用此函数。