PySide6.QtQml.QQmlProperty¶
- class QQmlProperty¶
QQmlProperty类抽象了从 QML 创建的对象上的属性访问。更多…概要¶
属性¶
方法¶
def
__init__()def
index()def
isBindable()def
isDesignable()def
isProperty()def
isResettable()def
isValid()def
isWritable()def
method()def
name()def
object()def
__eq__()def
property()def
propertyType()def
read()def
reset()def
swap()def
type()def
write()
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
由于QML使用Qt的元类型系统,所有现有的QMetaObject类都可以用于内省和与QML创建的对象进行交互。然而,QML提供的一些新特性——如类型安全和附加属性——通过
QQmlProperty类最容易使用,该类简化了它们的一些自然复杂性。与表示类类型上的属性的QMetaProperty不同,
QQmlProperty封装了特定对象实例上的属性。要读取属性的值,程序员创建一个QQmlProperty实例并调用read()方法。同样,要写入属性值,使用write()方法。例如,对于以下QML代码:
Text对象的属性可以通过
QQmlProperty访问,如下所示:#include <QQmlProperty> #include <QGraphicsObject> ... QQuickView view(QUrl::fromLocalFile("MyItem.qml")); QQmlProperty property(view.rootObject(), "font.pixelSize"); qWarning() << "Current pixel size:" << property.read().toInt(); property.write(24); qWarning() << "Pixel size should now be 24:" << property.read().toInt();
- class PropertyTypeCategory¶
此枚举指定了QML属性的类别。
常量
描述
QQmlProperty.InvalidCategory
属性无效,或者是信号属性。
QQmlProperty.List
该属性是一个
QQmlListProperty列表属性QQmlProperty.Object
该属性是一个QObject派生类型的指针
QQmlProperty.Normal
该属性是一个普通的值属性。
- class Type¶
此枚举指定了QML属性的类型。
常量
描述
QQmlProperty.Invalid
属性无效。
QQmlProperty.Property
该属性是一个常规的Qt属性。
QQmlProperty.SignalProperty
该属性是一个信号属性。
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property nameᅟ: str¶
- Access functions:
- Access functions:
- __init__()¶
创建一个无效的
QQmlProperty。- __init__(obj)
- Parameters:
obj –
QObject
为
obj的默认属性创建一个QQmlProperty。如果没有默认属性,将创建一个无效的QQmlProperty。- __init__(other)
- Parameters:
其他 –
QQmlProperty
创建
other的副本。- __init__(obj, ctxt)
- Parameters:
obj –
QObjectctxt –
QQmlContext
为
obj的默认属性创建一个QQmlProperty,使用contextctxt。如果没有默认属性,将创建一个无效的QQmlProperty。- __init__(obj, engine)
- Parameters:
obj –
QObjectengine –
QQmlEngine
为
obj的默认属性创建一个QQmlProperty,使用由engine提供的用于实例化QML组件的环境。如果没有默认属性,将创建一个无效的QQmlProperty。- __init__(obj, name)
- Parameters:
obj –
QObjectname – str
为
obj的属性name创建一个QQmlProperty。- __init__(obj, name, ctxt)
- Parameters:
obj –
QObjectname – str
ctxt –
QQmlContext
为
obj的属性name创建一个QQmlProperty,使用contextctxt。创建一个没有上下文的
QQmlProperty将导致某些属性(如附加属性)无法访问。- __init__(obj, name, engine)
- Parameters:
obj –
QObjectname – str
engine –
QQmlEngine
为
obj的属性name创建一个QQmlProperty,使用由engine提供的用于实例化QML组件的环境。将属性的更改通知信号连接到
dest对象的指定slot并返回true。如果此元属性不代表常规的Qt属性,或者它没有更改通知信号,或者dest对象没有指定的slot,则返回false。注意
slot应该使用 SLOT() 宏传递,以便正确识别。- connectNotifySignal(dest, method)
- Parameters:
dest –
QObjectmethod – int
- Return type:
布尔
将属性的更改通知信号连接到
dest对象的指定method并返回true。如果此元属性不代表常规的Qt属性,或者它没有更改通知信号,或者dest对象没有指定的method,则返回false。- hasNotifySignal()¶
- Return type:
布尔
如果属性具有更改通知信号,则返回 true,否则返回 false。
- index()¶
- Return type:
整数
返回属性的Qt元对象索引。
- isBindable()¶
- Return type:
布尔
- isDesignable()¶
- Return type:
布尔
如果属性是可设计的,则返回true,否则返回false。
- isProperty()¶
- Return type:
布尔
如果这个
QQmlProperty表示一个常规的Qt属性,则返回true。- isResettable()¶
- Return type:
布尔
如果属性可重置,则返回 true,否则返回 false。
- isSignalProperty()¶
- Return type:
布尔
如果此
QQmlProperty表示一个QML信号属性,则返回true。- isValid()¶
- Return type:
布尔
如果
QQmlProperty引用的是一个有效的属性,则返回 true,否则返回 false。- isWritable()¶
- Return type:
布尔
如果属性可写,则返回 true,否则返回 false。
- method()¶
- Return type:
如果此属性是
SignalProperty,则返回其QMetaMethod,否则返回无效的QMetaMethod。- name()¶
- Return type:
字符串
返回此QML属性的名称。
获取属性
nameᅟ的Getter。- needsNotifySignal()¶
- Return type:
布尔
如果属性需要更改通知信号以使绑定保持最新,则返回 true,否则返回 false。
一些属性,例如附加属性或那些值从不改变的属性,不需要变更通知器。
返回
QQmlProperty的 QObject。属性
objectᅟ的获取器。- __eq__(other)¶
- Parameters:
其他 –
QQmlProperty- Return type:
布尔
如果
other和这个QQmlProperty表示相同的属性,则返回 true。- property()¶
- Return type:
返回与此QML属性关联的Qt属性。
返回属性的元类型。
另请参阅
- propertyType()¶
- Return type:
整数
返回属性的元类型ID,如果属性没有元类型,则返回QMetaType::UnknownType。
另请参阅
- propertyTypeCategory()¶
- Return type:
返回属性类别。
- propertyTypeName()¶
- Return type:
字符串
返回属性的类型名称,如果属性没有类型名称,则返回0。
- read()¶
- Return type:
对象
返回属性值。
- static read(object, name)
- Parameters:
object –
QObjectname – str
- Return type:
对象
返回
object的name属性值。此方法等同于:QQmlProperty p(object, name); p.read();
- static read(object, name, ctxt)
- Parameters:
object –
QObjectname – str
ctxt –
QQmlContext
- Return type:
对象
返回使用
contextctxt的object的name属性值。此方法等同于:QQmlProperty p(object, name, context); p.read();
- static read(object, name, engine)
- Parameters:
object –
QObjectname – str
engine –
QQmlEngine
- Return type:
对象
返回
object的name属性值,使用由engine提供的用于实例化QML组件的环境。此方法等同于:QQmlProperty p(object, name, engine); p.read();
- reset()¶
- Return type:
布尔
重置属性并返回true,如果属性是可重置的。如果属性不可重置,则不会发生任何操作并返回false。
- swap(other)¶
- Parameters:
其他 –
QQmlProperty
返回属性的类型。
- write(value)¶
- Parameters:
值 – 对象
- Return type:
布尔
将属性值设置为
value。成功时返回true,如果由于value类型错误等原因无法设置属性,则返回false。- static write(object, name, value)
- Parameters:
object –
QObjectname – str
value – 对象
- Return type:
布尔
将
value写入object的name属性。此方法等同于:QQmlProperty p(object, name); p.write(value);
成功时返回
true,否则返回false。- static write(object, name, value, ctxt)
- Parameters:
object –
QObjectname – str
value – 对象
ctxt –
QQmlContext
- Return type:
布尔
将
value写入object的name属性,使用contextctxt。此方法等同于:QQmlProperty p(object, name, ctxt); p.write(value);
成功时返回
true,否则返回false。- static write(object, name, value, engine)
- Parameters:
object –
QObjectname – str
value – 对象
engine –
QQmlEngine
- Return type:
布尔
使用由
engine提供的环境来实例化QML组件,将value写入object的name属性。此方法等同于:QQmlProperty p(object, name, engine); p.write(value);
成功时返回
true,否则返回false。