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 –
QObject
property – 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 –
QObject
property – 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。