>假设我有一个 qml,其中 Item 作为根,2 个视觉对象(文本、矩形)和一个非可视项目(计时器)。我知道我可以使用"数据"来获取可视和非可视项的列表,但是如何在迭代时识别可视和非可视项?
注意:我可以在创建每个项目时指定命名约定,但是是否有任何属性/API 可用于识别可视和非可视项?
Item {
children: [
Text {},
Rectangle {}
]
resources: [
Timer {}
]
}
所有可视项都派生自Item
因此它们都具有相应的属性。您可以执行以下基本操作:
var obj = data[i]
if (obj.visible !== undefined) // obj has visible property so it is a visual item
当然,如果由于某种原因您有一个自定义类型,该类型不是可视项,但由于某种原因具有visible
属性,这将不起作用,因此请相应地选择该属性。