Qt中的内存管理

Nar*_*uto 10 c++ qt nokia qt4

大家好,我对Qt内存管理有一点疑问,

让我们以Listview为例,在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);
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,应手动删除项目?

cha*_*lup 16

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