当QStandardItemModel
分配在堆栈上的 被销毁时,模型中的指针所指向的对象会发生什么情况(例如,下面示例中的item
/指针):item2
QStandardItem* item = new QStandardItem("test");
QStandardItem* item2 = new QStandardItem("test2");
QList<QStandardItem*> list;
list.append(item);
list.append(item2);
QStandardItemModel model;
model.addRow(list);
在这种情况下,如果我理解正确,模型中的行由 N 个值组成,该行中的每个值表示为QStandardItem
。这意味着上面的“列表”对象是一行,有两个值(列)。
这比使用model.setData()
,model.setRowCount()
和手动跟踪坐标好还是坏?
如果需要完整的上下文,它就在这里。想法是手动循环QSqlQuery
结果并以块的形式获取行。调用相关方法loadChunk
。
如果模型是堆栈分配的,我是否需要以某种方式管理加载到模型的项目的释放addRow()
TLDR;如何确保模型在分配堆栈时不会泄漏内存,但包含大量指向堆上对象的指针?