- class QQmlProperty#
QQmlProperty
类抽象化了从 QML 创建的对象属性的访问。 更多…概要#
属性#
方法#
def
__init__()
def
index()
定义
isBindable()
定义
isProperty()
定义
isValid()
定义
isWritable()
定义
method()
定义
name()
定义
object()
定义
__eq__()
定义
property()
定义
read()
定义
reset()
定义
swap()
定义
type()
定义
write()
静态函数#
注意
本文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告诉我们
详细描述#
由于 QML 使用 Qt 的元类型系统,所有现有的 QMetaObject 类都可以用来内省和交互 QML 创建的对象。然而,QML 提供的一些新特性——如类型安全和附加属性——最方便的方式是通过 QQmlProperty 类实现,这个类简化了它们的一些天然复杂性。
与表示类类型的属性的 QMetaProperty 不同,QQmlProperty 封装了特定对象实例的属性。要读取属性的值,程序员创建一个 QQmlProperty 实例并调用 read() 方法。同样地,要写入属性值使用 write() 方法。
例如,对于以下 QML 代码
可以使用 QQmlProperty 来访问 Text 对象的属性,如下所示
#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 QmlIsAnonymous#
- 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#
- 访问函数
- 访问函数
创建用于
obj
默认属性的QQmlProperty
。如果没有默认属性,将创建一个无效的QQmlProperty
。- __init__()
创建一个无效的
QQmlProperty
。- __init__(arg__1)
- 参数:
arg__1 –
QQmlProperty
创建
other
的副本。- __init__(arg__1, arg__2, arg__3)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 –
QQmlEngine
使用
engine
提供的QML组件实例化环境,为obj
的属性name
创建一个QQmlProperty
。- __init__(arg__1, arg__2, arg__3)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 –
QQmlContext
使用上下文
ctxt
,为obj
的属性name
创建一个QQmlProperty
。在没有上下文的情况下创建
QQmlProperty
将使某些属性(如附加属性)不可访问。- __init__(arg__1, arg__2)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
为
obj
的属性name
创建一个QQmlProperty
。- __init__(arg__1, arg__2)
- 参数:
arg__1 –
QObject
arg__2 –
QQmlEngine
使用由
engine
提供的实例化 QML 组件的环境为obj
的默认属性创建一个QQmlProperty
。如果没有默认属性,将创建一个无效的QQmlProperty
。- __init__(arg__1, arg__2)
- 参数:
arg__1 –
QObject
arg__2 –
QQmlContext
使用
context
ctxt
为obj
的默认属性创建一个QQmlProperty
。如果没有默认属性,将创建一个无效的QQmlProperty
。将属性的更改通知信号连接到
dest
对象的指定slot
并且返回 true。如果此元属性不代表常规的 Qt 属性或它没有更改通知信号,或者dest
对象没有指定的slot
,则返回 false。注意
slot
应该使用 SLOT() 宏传递,以便正确识别。- connectNotifySignal(dest, method)
- 参数:
dest –
QObject
method – 整数
- 返回类型::
布尔型
将属性的更改通知信号连接到
dest
对象的指定method
并且返回 true。如果此元属性不代表常规的 Qt 属性或它没有更改通知信号,或者dest
对象没有指定的method
,则返回 false。- hasNotifySignal()#
- 返回类型::
布尔型
如果属性有更改通知信号,则返回 true,否则返回 false。
- index()#
- 返回类型::
返回
int
返回属性的 Qt 元对象索引。
- isBindable()#
- 返回类型::
布尔型
- isDesignable()#
- 返回类型::
布尔型
如果属性可设计,则返回 true,否则返回 false。
- isProperty()
- 返回类型::
布尔型
如果此
QQmlProperty
表示常规的 Qt 属性,则返回 true。- isResettable()
- 返回类型::
布尔型
如果属性可以重置,则返回 true,否则返回 false。
- isSignalProperty()
- 返回类型::
布尔型
如果此
QQmlProperty
表示 QML 信号属性,则返回 true。- isValid()
- 返回类型::
布尔型
如果此
QQmlProperty
指向有效的属性,则返回 true,否则返回 false。- isWritable()
- 返回类型::
布尔型
如果属性可写,则返回 true,否则返回 false。
- method()
- 返回类型::
如果此属性是
SignalProperty
类型的,则返回该属性的 QMetaMethod,否则返回一个无效的 QMetaMethod。- name()
- 返回类型::
str
返回此 QML 属性的名称。
属性
nameᅟ
的获取器。- needsNotifySignal()
- 返回类型::
布尔型
如果属性需要一个变化通知信号以保持绑定最新,则返回 true,否则返回 false。
有些属性,如附加属性或值从未改变的属性,不需要变化通知。
- object()
- 返回类型::
返回
QQmlProperty
的 QObject。属性
objectᅟ
的获取器。- __eq__(arg__1)
- 参数:
arg__1 –
QQmlProperty
- 返回类型::
布尔型
如果其他对象与该
QQmlProperty
代表相同的属性,则返回 true。- property()
- 返回类型::
返回与此 QML 属性关联的 Qt 属性。
返回属性的元类型。
参阅
- propertyType()#
- 返回类型::
返回
int
返回属性的元类型ID,如果没有元类型则返回QMetaType::UnknownType。
- propertyTypeCategory()#
- 返回类型::
返回属性类别。
- propertyTypeName()#
- 返回类型::
str
返回属性的类型名,如果没有类型名则返回0。
返回对象
name
属性值。此方法等价于QQmlProperty p(object, name); p.read();
- 静态 read(arg__1, arg__2, arg__3)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 –
QQmlEngine
- 返回类型::
对象
使用由
engine
提供的环境创建QML组件的实例属性值。此方法等价于QQmlProperty p(object, name, engine); p.read();
- 静态 read(arg__1, arg__2, arg__3)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 –
QQmlContext
- 返回类型::
对象
使用
context
ctxt
返回对象name
属性值。此方法等价于QQmlProperty p(object, name, context); p.read();
- read()
- 返回类型::
对象
返回属性值。
- reset()#
- 返回类型::
布尔型
重置属性并返回true,如果属性可重置。如果属性不可重置,则nothing happens并返回false。
- swap(other)#
- 参数:
other –
QQmlProperty
返回属性的类型。
将
value
写入到object
的name
属性。此方法等价于QQmlProperty p(object, name); p.write(value);
在成功时返回
true
,否则返回false
。- static write(arg__1, arg__2, arg__3, arg__4)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 – 对象
arg__4 –
QQmlContext
- 返回类型::
布尔型
使用
context
ctxt
将value
写入到object
的name
属性。此方法等价于QQmlProperty p(object, name, ctxt); p.write(value);
在成功时返回
true
,否则返回false
。- static write(arg__1, arg__2, arg__3, arg__4)
- 参数:
arg__1 –
QObject
arg__2 – 字符串
arg__3 – 对象
arg__4 –
QQmlEngine
- 返回类型::
布尔型
使用
engine
提供的创建 QML 组件的环境将value
写入到object
的name
属性。此方法等价于QQmlProperty p(object, name, engine); p.write(value);
在成功时返回
true
,否则返回false
。- write(arg__1)
- 参数:
arg__1 – 对象
- 返回类型::
布尔型
将属性值设置为
value
。在成功时返回true
,如果由于value
类型错误等原因无法设置属性,则返回false
。