QML引入了一个独立的所有权(QObject
)树,与QtQuick场景图中的视觉树分开。
parent
返回视觉父级。children
返回视觉子级。data
返回QObject
子级。
但是如何访问QObject
父级呢?
顺便说一下,我打算动态创建和销毁包含自定义类型的嵌套布局,因此需要管理QObject
树 - 仅使用视觉树将导致重新分配父对象然后删除后出现“错误”的对象丢失。
您可以通过以下方式创建对象来避免不必要的先前父级所有权:
const someObject = someComponent.createObject( null, { parent: someItem });
这样someItem
只是someObject
的可视化父级。您可以将子项移动到其他位置,然后删除容器。