假设我有一个 qml ,其中Item为root,2个是visual(Text,Rectangle)和一个非可视项(Timer)。我知道我可以使用“数据”来获取视觉和非视觉项目列表,但如何在迭代时识别视觉和非视觉项目,?
注意:我可以在创建每个项目时指定命名约定,但有没有可用于识别可视和非可视项目的属性/ API?
Item {
children: [
Text {},
Rectangle {}
]
resources: [
Timer {}
]
}
答案 0 :(得分:2)
所有可视项都来自Item
,因此它们都具有相应的属性。你可以做一些基本的事情:
var obj = data[i]
if (obj.visible !== undefined) // obj has visible property so it is a visual item
当然,如果由于某种原因你有一个自定义类型不是一个可视项目但由于某种原因有一个visible
属性,这将不起作用,所以选择相应的属性。