【发布时间】:2017-06-27 14:43:03
【问题描述】:
要从 QListWidget* lst 中删除给定的 QListWidgetItem* item,我可以使用以下代码 (taken from this answer):
delete lst->takeItem(lst->row(item)); // method 1
另一方面,如果我只是销毁该项目,它也会从列表中删除(至少它从QListWidget 中消失)。
delete item; // method 2
QListWidget documentation 表示使用takeItem,但没有提及删除项目(QListWidgetItem 也没有任何信息)。
要从列表中删除项目,请使用 takeItem()。
使用方法1(takeItem然后删除)和方法2(直接删除项目)有什么区别吗?也许我错过了内存泄漏、未发出的信号等?我的意思是,删除该项目(当然,如果你有的话)似乎比搜索它更容易。
【问题讨论】:
标签: c++ qt qlistwidget qlistwidgetitem