- class QQmlListReference#
类
QQmlListReference
允许操作QQmlListProperty
属性。更多…概览#
方法#
def
__init__()
def
append()
def
at()
定义
canAppend()
定义
canAt()
定义
canClear()
定义
canCount()
定义
canReplace()
定义
clear()
定义
count()
定义
isReadable()
定义
isValid()
定义
object()
定义
__eq__()
定义
removeLast()
定义
replace()
定义
size()
注意
此文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单来告诉我们
详细说明#
QQmlListReference
允许 C++ 程序以简单且类型安全的方式读取和向 QML 列表属性赋值。《a class="reference internal" href="#PySide6.QtQml.QQmlListReference" title="PySide6.QtQml.QQmlListReference">QQmlListReference
可以通过传递对象和属性名或通过一个QQmlProperty
实例来创建。这两个是等价的。QQmlListReference ref1(object, "children"); QQmlProperty ref2(object, "children"); QQmlListReference ref2 = qvariant_cast<QQmlListReference>(ref2.read());
并非所有QML列表属性都支持所有操作。一组方法,包括
canAppend()
、canAt()
、canClear()
和canCount()
,允许程序查询在给定的属性上进行操作是否受支持。QML列表属性是类型安全的。只有从正确的基本类派生出的QObject可以分配到列表中。可以使用
listElementType()
方法查询支持QObject类型的QMetaObject。尝试将非正确类型的对象添加到列表属性中会导致失败。与普通列表类似,当按索引访问列表元素时,确保在使用
at()
之前不为使用count()
方法导致的索引超出范围请求负责。- __init__
- 参数:
o –
QObject
property – 字符串
为
object
的property
构造一个QQmlListReference
。如果property
不是一个列表属性,则会创建一个无效的QQmlListReference
。如果创建引用后对象被销毁,引用将自动变为无效。也就是说,即使在object
被删除后,也可以安全地保留QQmlListReference
实例。- __init__
- 参数:
o –
QObject
property – 字符串
engine –
QQmlEngine
注意
该函数已弃用。
请使用不带
QQmlEngine
参数的构造函数。为
object
的property
构造一个QQmlListReference
。如果property
不是一个列表属性,则会创建一个无效的QQmlListReference
。如果创建引用后对象被销毁,引用将自动变为无效。也就是说,即使在object
被删除后,也可以安全地保留QQmlListReference
实例。engine
不再使用。- __init__
- 参数:
arg__1 –
QQmlListReference
从包含一个
QQmlListProperty
的 QVariantvariant
构造一个QQmlListReference
。如果 variant 不包含列表属性,则创建一个无效的QQmlListReference
。如果在构造引用之后销毁拥有列表属性的对象,它将自动变为无效。也就是说,即使在对象被删除之后,也可以安全地持有QQmlListReference
实例。- __init__(variant)
- 参数:
variant – 对象
从包含一个
QQmlListProperty
的 QVariantvariant
构造一个QQmlListReference
。如果 variant 不包含列表属性,则创建一个无效的QQmlListReference
。如果在构造引用之后销毁拥有列表属性的对象,它将自动变为无效。也就是说,即使在对象被删除之后,也可以安全地持有QQmlListReference
实例。- __init__(variant, engine)
- 参数:
variant – 对象
engine –
QQmlEngine
注意
该函数已弃用。
请使用不带
QQmlEngine
参数的构造函数。从包含一个
QQmlListProperty
的 QVariantvariant
构造一个QQmlListReference
。如果 variant 不包含列表属性,则创建一个无效的QQmlListReference
。如果在构造引用之后销毁拥有列表属性的对象,它将自动变为无效。也就是说,即使在对象被删除之后,也可以安全地持有QQmlListReference
实例。engine
不再使用。- __init__()
构造一个无效实例。
- append(arg__1)
- 参数:
arg__1 –
QObject
- 返回类型::
bool
将
object
添加到列表中。如果操作成功则返回 true,否则返回 false。另请参阅:
- at(arg__1)
- 参数:
arg__1 – int
- 返回类型::
返回位于
index
的列表元素,如果操作失败则返回 0。另请参阅:
如果列表属性可以追加,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
如果列表属性可以按索引查询,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
如果列表属性可以被清除,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
如果可以查询列表属性中的元素数量,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
- canRemoveLast()#
- 返回类型::
bool
如果可以从列表属性中移除最后一个项目,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
- canReplace()#
- 返回类型::
bool
如果可以替换列表属性中的项目,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅:
- clear()#
- 返回类型::
bool
清空列表。如果操作成功,则返回 true,否则返回 false。
另请参阅:
- count()#
- 返回类型::
int
返回列表中的对象数量,或者在操作失败时返回 0。
- isManipulable()#
- 返回类型::
bool
如果at()、count()、append()、以及 clear() 或 removeLast() 中有任何一个是实现的话,将返回 true,因此您可以操作列表。
请注意,replace() 和 removeLast() 可以通过使用 clear() 和 append() 重新构建整个列表来实现。因此,它们不是使列表可操作所必需的。此外,使用 removeLast() 可以模拟 clear()。
- isReadable()#
- 返回类型::
bool
如果
at()
和count()
已实现,则返回true,您即可访问元素。另请参阅:
- isValid()#
- 返回类型::
bool
如果实例引用有效列表属性,则返回true,否则返回false。
- listElementType()#
- 返回类型::
返回列表属性中存储的元素的QMetaObject,或如果引用无效则返回None。
可以在构造函数中未传递引擎之前使用QMetaObject来预确定给定实例是否可添加到列表中。如果在构造函数中没有传递引擎,这可能会返回nullptr。
返回列表属性的对象。如果引用无效,则返回None。
- __eq__(other)#
- 参数:
other –
QQmlListReference
- 返回类型::
bool
比较此
QQmlListReference
与其他
,并在它们相等时返回true
。只有当其中一个是通过复制赋值或复制构造函数从另一个创建时,这两个才被认为是相等的。注意
分别创建的同一对象的引用不被视为相等。
- removeLast()#
- 返回类型::
bool
从列表中移除最后一个项目。如果操作成功,则返回 true,否则返回 false。
另请参阅:
用
object
替换列表中的索引为index
的项目。如果操作成功,则返回 true,否则返回 false。另请参阅:
- size()#
- 返回类型::
int
返回列表中的对象数量,或者在操作失败时返回 0。