首页 文章

如何知道qml项目是视觉还是资源?

提问于
浏览
0

假设我有一个带有Item作为root的qml和2个visual(Text,Rectangle)和一个非可视项(Timer) . 我知道我可以使用“数据”来获取视觉和非视觉项目列表,但是 how to identify visual and non visual items while iterating ,?

注意:我可以在创建每个项目时指定命名约定,但是有任何属性/ API可用于标识可视和非可视项目吗?

Item {
    children: [
        Text {},
        Rectangle {}
    ]
    resources: [
        Timer {}
    ]
}

1 回答

  • 2

    所有可视项都来自 Item ,因此它们都具有相应的属性 . 你可以做一些基本的事情:

    var obj = data[i]
    if (obj.visible !== undefined) // obj has visible property so it is a visual item
    

    当然,如果由于某种原因你有一个自定义类型不是一个可视项目但由于某种原因有 visible 属性,这将无法工作,所以选择相应的属性 .

相关问题