QML从可视化树(QtQuick场景图)中引入了一个单独的所有权(QObject
)树。
parent
返回可视父级。children
返回视觉孩子。data
会返回QObject
个孩子。但是如何访问QObject
父母?
仅供参考,我打算动态创建和销毁包含自定义类型的嵌套布局,因此我需要管理QObject
树 - 只需使用可视化树将导致'错误'对象在重新渲染后消失,然后删除。
答案 0 :(得分:1)
如果你实际上知道项目的父项,我认为如果不进入C ++就不会发现。如果您只想更改项目的QObject
父项,您应该可以在QML中将其添加到新父项的data
属性中。 (如果适用,这也将改变其视觉父母。)
为了进行内存管理,分配给项的数据属性的任何对象都将成为其QObject层次结构中项的子对象。此外,如果添加到data属性的对象属于Item类型,则它也会分配给Item :: children属性,并成为可视场景层次结构中项目的子对象。 (大多数Qt Quick层次爬行算法,尤其是渲染算法,只考虑可视父级层次结构。)