首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT4.7 removeChild()和内存

QT4.7 removeChild()和内存
EN

Stack Overflow用户
提问于 2011-07-27 12:26:03
回答 2查看 2.5K关注 0票数 2

我正在编写一个c++ qt应用程序。在其中一部分中,我正在创建一个QTreeWidget。用户可以在该树中创建和删除条目。因此,当用户创建一个项目时,他将调用一个函数,然后函数本身调用:

代码语言:javascript
复制
QTreeWidgetItem* newItem = new QTreeWidgetItem();

当用户稍后决定删除该条目时,他将调用一个函数,该函数本身将调用:

代码语言:javascript
复制
QTreeWidgetItem* curItem = _ui->qTreeWidget->currentItem();
QTreeWidgetItem* parent = curItem->parent();
parent->removeChild(curItem);

现在为我抹去的问题是:这个项目所占据的记忆是什么?QT4.7doc对removeChild的说明如下:

void::removeChild( QTreeWidgetItem * )移除由子对象指示的给定项。删除的项目将不会被删除。

那我怎么删除一个孩子呢?

提前谢谢!唐尼

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-27 12:35:11

怎么样

代码语言:javascript
复制
delete curItem;

根据文档,析构函数将从包含它的树中删除项目,所以我认为您甚至不需要事先执行removeChild

票数 2
EN

Stack Overflow用户

发布于 2011-07-27 12:35:23

您通常只需在正确的时间删除对象,并使用:

代码语言:javascript
复制
delete curItem;

删除只是从父节点中移除其链接。

或者把它安排在稍后删除

代码语言:javascript
复制
curItem->deleteLater();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6844257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档