QML:获取 QObject 父级
Posted
技术标签:
【中文标题】QML:获取 QObject 父级【英文标题】:QML: Get QObject parent 【发布时间】:2013-10-19 22:09:15 【问题描述】:QML 引入了与可视化树(QtQuick 场景图)分离的所有权 (QObject
) 树。
parent
返回可视父级。
children
返回视觉孩子。
data
返回 QObject
孩子。
但是如何访问QObject
父级?
仅供参考,我打算动态创建和销毁包含自定义类型的嵌套布局,因此我需要管理 QObject
树 - 仅使用可视化树将导致“错误”对象在重新设置父级然后删除后消失。
【问题讨论】:
【参考方案1】:如果您实际上不知道项目的父项,我认为您不进入 C++ 就无法找到。如果您只想更改项目的 QObject
父项,您应该能够在 QML 中通过将其添加到其新父项的 data
属性来执行此操作。 (如果适用,这也将更改其视觉父级。)
引用the Qt Quick Concepts 文档:
分配给项目数据属性的任何对象都将成为其 QObject 层次结构中项目的子项,用于内存管理目的。此外,如果添加到 data 属性的对象是 Item 类型,它也被分配给 Item::children 属性,并成为视觉场景层次结构中项目的子项。 (大部分Qt Quick层级爬取算法,尤其是渲染算法,只考虑可视父层级。)
【讨论】:
以上是关于QML:获取 QObject 父级的主要内容,如果未能解决你的问题,请参考以下文章