我对 Qt 内存管理有一点疑问。
让我们以Listview为例,在listview中我们通过动态分配内存来添加每个项目。那么在这种情况下我们是否需要手动删除所有“新”的项目。
E.g:
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() 不会将模型的所有权转移给视图,因为一个模型可以被多个视图使用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)