代码之家  ›  专栏  ›  技术社区  ›  Naruto

Qt内存管理

  •  10
  • Naruto  · 技术社区  · 14 年前

    我对Qt内存管理有点怀疑,

    如:

    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);
    }
    

    在本例中,应该手动删除项吗?

    1 回复  |  直到 14 年前
        1
  •  16
  •   chalup    14 年前

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