加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – Qt中的内存管理

发布时间:2020-12-16 03:25:54 所属栏目:百科 来源:网络整理
导读:大家好, 我对Qt内存管理有点怀疑, 让我们以Listview为例,在列表视图中,通过动态分配内存来添加每个项目.所以在这种情况下,我们需要手动删除所有的“新”编辑项目. 例如: Qlistview *list = new Qlistview;QStandardItemModel *mModel = new QStandardItemMo
大家好,
我对Qt内存管理有点怀疑,

让我们以Listview为例,在列表视图中,通过动态分配内存来添加每个项目.所以在这种情况下,我们需要手动删除所有的“新”编辑项目.

例如:

Qlistview *list = new Qlistview;
QStandardItemModel  *mModel = new QStandardItemModel();
list ->setModel(mModel);

for(int I =0;i<10;i++)
{
QsandardItem *item = new QsandardItem(“Hi”);
mModel->appendRow(item);
}

在这个例子中,项目应该手动删除?

解决方法

QStandardItemModel拥有项目的所有权,因此当模型被破坏时,它们将被自动删除.您仍然需要删除模型本身(setModel()不会将模型的所有权转移到视图,因为一个模型可以被多个视图使用).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读