class QQmlProperty#

QQmlProperty 类抽象化了从 QML 创建的对象属性的访问。 更多

概要#

属性#

方法#

静态函数#

注意

本文档可能包含从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#
访问函数
property object: QObject#
访问函数
__init__(arg__1)#
参数:

arg__1QObject

创建用于obj默认属性的QQmlProperty。如果没有默认属性,将创建一个无效的QQmlProperty

__init__()

创建一个无效的QQmlProperty

__init__(arg__1)
参数:

arg__1QQmlProperty

创建other的副本。

__init__(arg__1, arg__2, arg__3)
参数:
  • arg__1QObject

  • arg__2 – 字符串

  • arg__3QQmlEngine

使用engine提供的QML组件实例化环境,为obj的属性name创建一个QQmlProperty

__init__(arg__1, arg__2, arg__3)
参数:
  • arg__1QObject

  • arg__2 – 字符串

  • arg__3QQmlContext

使用上下文ctxt,为obj的属性name创建一个QQmlProperty

在没有上下文的情况下创建QQmlProperty将使某些属性(如附加属性)不可访问。

__init__(arg__1, arg__2)
参数:
  • arg__1QObject

  • arg__2 – 字符串

obj的属性name创建一个QQmlProperty

__init__(arg__1, arg__2)
参数:
  • arg__1QObject

  • arg__2QQmlEngine

使用由 engine 提供的实例化 QML 组件的环境为 obj 的默认属性创建一个 QQmlProperty。如果没有默认属性,将创建一个无效的 QQmlProperty

__init__(arg__1, arg__2)
参数:

使用 context ctxtobj 的默认属性创建一个 QQmlProperty。如果没有默认属性,将创建一个无效的 QQmlProperty

connectNotifySignal(dest, slot)#
参数:
  • destQObject

  • slot – 字符串

返回类型::

布尔型

将属性的更改通知信号连接到 dest 对象的指定 slot 并且返回 true。如果此元属性不代表常规的 Qt 属性或它没有更改通知信号,或者 dest 对象没有指定的 slot,则返回 false。

注意

slot 应该使用 SLOT() 宏传递,以便正确识别。

connectNotifySignal(dest, method)
参数:
  • destQObject

  • 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()
返回类型::

QMetaMethod

如果此属性是 SignalProperty 类型的,则返回该属性的 QMetaMethod,否则返回一个无效的 QMetaMethod。

name()
返回类型::

str

返回此 QML 属性的名称。

属性 nameᅟ 的获取器。

needsNotifySignal()
返回类型::

布尔型

如果属性需要一个变化通知信号以保持绑定最新,则返回 true,否则返回 false。

有些属性,如附加属性或值从未改变的属性,不需要变化通知。

object()
返回类型::

QObject

返回 QQmlProperty 的 QObject。

属性 objectᅟ 的获取器。

__eq__(arg__1)
参数:

arg__1QQmlProperty

返回类型::

布尔型

如果其他对象与该 QQmlProperty 代表相同的属性,则返回 true。

property()
返回类型::

QMetaProperty

返回与此 QML 属性关联的 Qt 属性。

propertyMetaType()#
返回类型::

QMetaType

返回属性的元类型。

参阅

propertyType

propertyType()#
返回类型::

返回 int

返回属性的元类型ID,如果没有元类型则返回QMetaType::UnknownType。

propertyTypeCategory()#
返回类型::

PropertyTypeCategory

返回属性类别。

propertyTypeName()#
返回类型::

str

返回属性的类型名,如果没有类型名则返回0。

静态 read(arg__1, arg__2)#
参数:
  • arg__1QObject

  • arg__2 – 字符串

返回类型::

对象

返回对象name属性值。此方法等价于

QQmlProperty p(object, name);
p.read();
静态 read(arg__1, arg__2, arg__3)
参数:
  • arg__1QObject

  • arg__2 – 字符串

  • arg__3QQmlEngine

返回类型::

对象

使用由engine提供的环境创建QML组件的实例属性值。此方法等价于

QQmlProperty p(object, name, engine);
p.read();
静态 read(arg__1, arg__2, arg__3)
参数:
  • arg__1QObject

  • arg__2 – 字符串

  • arg__3QQmlContext

返回类型::

对象

使用context ctxt返回对象name属性值。此方法等价于

QQmlProperty p(object, name, context);
p.read();
read()
返回类型::

对象

返回属性值。

reset()#
返回类型::

布尔型

重置属性并返回true,如果属性可重置。如果属性不可重置,则nothing happens并返回false。

swap(other)#
参数:

otherQQmlProperty

type()#
返回类型::

类型

返回属性的类型。

静态 write(arg__1, arg__2, arg__3)#
参数:
  • arg__1QObject

  • arg__2 – 字符串

  • arg__3 – 对象

返回类型::

布尔型

value 写入到 objectname 属性。此方法等价于

QQmlProperty p(object, name);
p.write(value);

在成功时返回 true,否则返回 false

static write(arg__1, arg__2, arg__3, arg__4)
参数:
返回类型::

布尔型

使用 context ctxtvalue 写入到 objectname 属性。此方法等价于

QQmlProperty p(object, name, ctxt);
p.write(value);

在成功时返回 true,否则返回 false

static write(arg__1, arg__2, arg__3, arg__4)
参数:
返回类型::

布尔型

使用 engine 提供的创建 QML 组件的环境将 value 写入到 objectname 属性。此方法等价于

QQmlProperty p(object, name, engine);
p.write(value);

在成功时返回 true,否则返回 false

write(arg__1)
参数:

arg__1 – 对象

返回类型::

布尔型

将属性值设置为 value。在成功时返回 true,如果由于 value 类型错误等原因无法设置属性,则返回 false