在单独的文件中包含 qml / qtquick2 列的一些元素

Have some elements of a qml / qtquick2 column in a separate file

我遇到这样的情况:

Column{
 Item{id:item1}
 Item{id:item2}
 Item{id:item3}
 Item{id:item4}
 Item{id:itemA}
}

Column{
 Item{id:item1}
 Item{id:item2}
 Item{id:item3}
 Item{id:item4}
 Item{id:itemB}
}

我可以使用自定义 qml 元素实现以下目标吗?

Column{
 ItemsOneToFour{}
 Item{id:itemA}
}

Column{
 ItemsOneToFour{}
 Item{id:itemB}
}

据我了解 qml,自定义元素(或一般的 qml 元素)需要只有一个根,但在列、行和网格(或一般的定位器)的情况下,这将非常有帮助重复使用某些部分,例如其他专栏,所以我希望我只是缺少一些关于如何实现它的知识。

不一定,但你可以:

Column{ // ItemsOneToFour
 Item{id:item1}
 Item{id:item2}
 Item{id:item3}
 Item{id:item4}
}

ItemsOneToFour{
 Item{id:itemA}
}

ItemsOneToFour{
 Item{id:itemB}
}

实际就是这样。

附带说明一下,如果 QML 支持接口就好了,但它不支持。所以聚合是必经之路。