PySide6.QtQml.QQmlProperty

class QQmlProperty

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

概要

属性

方法

静态函数

注意

本文档可能包含从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:
property objectᅟ: QObject
Access functions:
__init__()

创建一个无效的 QQmlProperty

__init__(obj)
Parameters:

objQObject

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

__init__(other)
Parameters:

其他QQmlProperty

创建 other 的副本。

__init__(obj, ctxt)
Parameters:

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

__init__(obj, engine)
Parameters:

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

__init__(obj, name)
Parameters:

obj的属性name创建一个QQmlProperty

__init__(obj, name, ctxt)
Parameters:

obj的属性name创建一个QQmlProperty,使用context ctxt

创建一个没有上下文的QQmlProperty将导致某些属性(如附加属性)无法访问。

__init__(obj, name, engine)
Parameters:

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

connectNotifySignal(dest, slot)
Parameters:
Return type:

布尔

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

注意

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

connectNotifySignal(dest, method)
Parameters:
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:

QMetaMethod

如果此属性是SignalProperty,则返回其QMetaMethod,否则返回无效的QMetaMethod。

name()
Return type:

字符串

返回此QML属性的名称。

获取属性 nameᅟ 的Getter。

needsNotifySignal()
Return type:

布尔

如果属性需要更改通知信号以使绑定保持最新,则返回 true,否则返回 false。

一些属性,例如附加属性或那些值从不改变的属性,不需要变更通知器。

object()
Return type:

QObject

返回 QQmlProperty 的 QObject。

属性 objectᅟ 的获取器。

__eq__(other)
Parameters:

其他QQmlProperty

Return type:

布尔

如果 other 和这个 QQmlProperty 表示相同的属性,则返回 true。

property()
Return type:

QMetaProperty

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

propertyMetaType()
Return type:

QMetaType

返回属性的元类型。

另请参阅

propertyType

propertyType()
Return type:

整数

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

另请参阅

propertyMetaType

propertyTypeCategory()
Return type:

PropertyTypeCategory

返回属性类别。

propertyTypeName()
Return type:

字符串

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

read()
Return type:

对象

返回属性值。

static read(object, name)
Parameters:
Return type:

对象

返回objectname属性值。此方法等同于:

QQmlProperty p(object, name);
p.read();
static read(object, name, ctxt)
Parameters:
Return type:

对象

返回使用context ctxtobjectname属性值。此方法等同于:

QQmlProperty p(object, name, context);
p.read();
static read(object, name, engine)
Parameters:
Return type:

对象

返回objectname属性值,使用由engine提供的用于实例化QML组件的环境。此方法等同于:

QQmlProperty p(object, name, engine);
p.read();
reset()
Return type:

布尔

重置属性并返回true,如果属性是可重置的。如果属性不可重置,则不会发生任何操作并返回false。

swap(other)
Parameters:

其他QQmlProperty

type()
Return type:

类型

返回属性的类型。

write(value)
Parameters:

– 对象

Return type:

布尔

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

static write(object, name, value)
Parameters:
  • objectQObject

  • name – str

  • value – 对象

Return type:

布尔

value写入objectname属性。此方法等同于:

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

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

static write(object, name, value, ctxt)
Parameters:
Return type:

布尔

value写入objectname属性,使用context ctxt。此方法等同于:

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

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

static write(object, name, value, engine)
Parameters:
Return type:

布尔

使用由engine提供的环境来实例化QML组件,将value写入objectname属性。此方法等同于:

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

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