PySide6.QtQml.QQmlListReference

class QQmlListReference

QQmlListReference 类允许操作 QQmlListProperty 属性。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QQmlListReference 允许C++程序以简单且类型安全的方式读取和赋值给QML列表属性。可以通过传递对象和属性名称或通过QQmlProperty实例创建QQmlListReference。这两者是等价的:

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__()

构造一个无效的实例。

__init__(variant)
Parameters:

variantQQmlListReference

从包含QQmlListProperty的QVariant variant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。

__init__(variant)
Parameters:

variant – 对象

从包含QQmlListProperty的QVariant variant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。

__init__(o, property)
Parameters:

objectproperty 构造一个 QQmlListReference。如果 property 不是一个列表属性,则会创建一个无效的 QQmlListReference。如果在引用构造后 object 被销毁,它将自动变为无效。也就是说,即使在 object 被删除后,持有 QQmlListReference 实例也是安全的。

__init__(variant, engine)
Parameters:

注意

此函数已弃用。

请使用不带QQmlEngine参数的构造函数。

从包含QQmlListProperty的QVariant variant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。

engine 未被使用。

__init__(o, property, engine)
Parameters:

注意

此函数已弃用。

使用没有QQmlEngine参数的构造函数代替。

objectproperty 构造一个 QQmlListReference。如果 property 不是一个列表属性,则会创建一个无效的 QQmlListReference。如果在引用构造后 object 被销毁,它将自动变为无效。也就是说,即使在 object 被删除后,持有 QQmlListReference 实例也是安全的。

engine 未被使用。

append(object)
Parameters:

对象QObject

Return type:

布尔

object 添加到列表中。如果操作成功则返回 true,否则返回 false。

另请参阅

canAppend()

at(index)
Parameters:

索引 – int

Return type:

QObject

返回位于index的列表元素,如果操作失败则返回0。

另请参阅

canAt()

canAppend()
Return type:

布尔

如果列表属性可以追加,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

append()

canAt()
Return type:

布尔

如果列表属性可以通过索引查询,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

at()

canClear()
Return type:

布尔

如果列表属性可以被清除,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

clear()

canCount()
Return type:

布尔

如果列表属性可以查询其元素计数,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

count()

canRemoveLast()
Return type:

布尔

如果可以从列表属性中移除最后一项,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

removeLast()

canReplace()
Return type:

布尔

如果列表属性中的项目可以被替换,则返回 true,否则返回 false。如果引用无效,则返回 false。

另请参阅

replace()

clear()
Return type:

布尔

清除列表。如果操作成功则返回 true,否则返回 false。

另请参阅

canClear()

count()
Return type:

整数

返回列表中的对象数量,如果操作失败则返回0。

isManipulable()
Return type:

布尔

如果实现了at()count()append(),以及clear()removeLast(),则返回true,以便您可以操作列表。

请注意,replace()removeLast() 可以通过暂存所有项目并使用 clear()append() 重建列表来模拟。因此,它们并不是列表可操作的必要条件。此外,clear() 可以使用 removeLast() 来模拟。

isReadable()
Return type:

布尔

如果实现了at()count(),则返回true,这样你就可以访问元素。

isValid()
Return type:

布尔

如果实例引用了一个有效的列表属性,则返回 true,否则返回 false。

listElementType()
Return type:

QMetaObject

返回存储在列表属性中的元素的QMetaObject,如果引用无效则返回None

QMetaObject 可以提前用于确定是否可以将给定实例添加到列表中。如果在构造时未传递引擎,则可能返回 nullptr。

object()
Return type:

QObject

返回列表属性的对象。如果引用无效,则返回None

__eq__(other)
Parameters:

其他QQmlListReference

Return type:

布尔

将此QQmlListReferenceother进行比较,如果它们相等,则返回true。只有当其中一个是通过复制赋值或复制构造从另一个创建时,两者才被视为相等。

注意

独立创建的引用指向同一个对象不被认为是相等的。

removeLast()
Return type:

布尔

移除列表中的最后一项。如果操作成功则返回 true,否则返回 false。

另请参阅

canRemoveLast()

replace(index, object)
Parameters:
  • index – 整数

  • objectQObject

Return type:

布尔

将列表中index处的项目替换为object。如果操作成功则返回true,否则返回false。

另请参阅

canReplace()

size()
Return type:

整数

返回列表中的对象数量,如果操作失败则返回0。