PySide6.QtQml.QQmlListReference¶
- class QQmlListReference¶
QQmlListReference类允许操作QQmlListProperty属性。更多…概要¶
方法¶
def
__init__()def
append()def
at()def
canAppend()def
canAt()def
canClear()def
canCount()def
canRemoveLast()def
canReplace()def
clear()def
count()def
isManipulable()def
isReadable()def
isValid()def
object()def
__eq__()def
removeLast()def
replace()def
size()
注意
本文档可能包含从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:
variant –
QQmlListReference
从包含
QQmlListProperty的QVariantvariant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。- __init__(variant)
- Parameters:
variant – 对象
从包含
QQmlListProperty的QVariantvariant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。- __init__(o, property)
- Parameters:
o –
QObjectproperty – str
为
object的property构造一个QQmlListReference。如果property不是一个列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后object被销毁,它将自动变为无效。也就是说,即使在object被删除后,持有QQmlListReference实例也是安全的。- __init__(variant, engine)
- Parameters:
variant – 对象
engine –
QQmlEngine
注意
此函数已弃用。
请使用不带
QQmlEngine参数的构造函数。从包含
QQmlListProperty的QVariantvariant构造一个QQmlListReference。如果variant不包含列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后拥有列表属性的对象被销毁,它将自动变为无效。也就是说,即使对象被删除,持有QQmlListReference实例也是安全的。engine未被使用。- __init__(o, property, engine)
- Parameters:
o –
QObjectproperty – str
engine –
QQmlEngine
注意
此函数已弃用。
使用没有
QQmlEngine参数的构造函数代替。为
object的property构造一个QQmlListReference。如果property不是一个列表属性,则会创建一个无效的QQmlListReference。如果在引用构造后object被销毁,它将自动变为无效。也就是说,即使在object被删除后,持有QQmlListReference实例也是安全的。engine未被使用。将
object添加到列表中。如果操作成功则返回 true,否则返回 false。另请参阅
返回位于
index的列表元素,如果操作失败则返回0。另请参阅
- canAppend()¶
- Return type:
布尔
如果列表属性可以追加,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- canAt()¶
- Return type:
布尔
如果列表属性可以通过索引查询,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- canClear()¶
- Return type:
布尔
如果列表属性可以被清除,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- canCount()¶
- Return type:
布尔
如果列表属性可以查询其元素计数,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- canRemoveLast()¶
- Return type:
布尔
如果可以从列表属性中移除最后一项,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- canReplace()¶
- Return type:
布尔
如果列表属性中的项目可以被替换,则返回 true,否则返回 false。如果引用无效,则返回 false。
另请参阅
- clear()¶
- Return type:
布尔
清除列表。如果操作成功则返回 true,否则返回 false。
另请参阅
- 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,如果引用无效则返回
None。QMetaObject 可以提前用于确定是否可以将给定实例添加到列表中。如果在构造时未传递引擎,则可能返回 nullptr。
返回列表属性的对象。如果引用无效,则返回
None。- __eq__(other)¶
- Parameters:
其他 –
QQmlListReference- Return type:
布尔
将此
QQmlListReference与other进行比较,如果它们相等,则返回true。只有当其中一个是通过复制赋值或复制构造从另一个创建时,两者才被视为相等。注意
独立创建的引用指向同一个对象不被认为是相等的。
- removeLast()¶
- Return type:
布尔
移除列表中的最后一项。如果操作成功则返回 true,否则返回 false。
另请参阅
将列表中
index处的项目替换为object。如果操作成功则返回true,否则返回false。另请参阅
- size()¶
- Return type:
整数
返回列表中的对象数量,如果操作失败则返回0。