QML:获取QObject父级

时间:2013-10-19 22:09:16

标签: qt qml qt5 qobject qtquick2

QML从可视化树(QtQuick场景图)中引入了一个单独的所有权(QObject)树。

  • parent返回可视父级。
  • children返回视觉孩子。
  • data会返回QObject个孩子。

但是如何访问QObject父母?

仅供参考,我打算动态创建和销毁包含自定义类型的嵌套布局,因此我需要管理QObject树 - 只需使用可视化树将导致'错误'对象在重新渲染后消失,然后删除。

1 个答案:

答案 0 :(得分:1)

如果你实际上知道项目的父项,我认为如果不进入C ++就不会发现。如果您只想更改项目的QObject父项,您应该可以在QML中将其添加到新父项的data属性中。 (如果适用,这也将改变其视觉父母。)

引用the Qt Quick Concepts文档:

  

为了进行内存管理,分配给项的数据属性的任何对象都将成为其QObject层次结构中项的子对象。此外,如果添加到data属性的对象属于Item类型,则它也会分配给Item :: children属性,并成为可视场景层次结构中项目的子对象。 (大多数Qt Quick层次爬行算法,尤其是渲染算法,只考虑可视父级层次结构。)