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



>假设我有一个 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属性,这将不起作用,因此请相应地选择该属性。

相关内容

  • 没有找到相关文章