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()不会将模型的所有权转移到视图,因为一个模型可以被多个视图使用).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |