PyQt4 - 从QListWidget中删除Item Widget

Ant*_*rth 7 python qlistwidget pyqt4

我有一个QListWidget,我需要删除一些项目.

根据我的研究,这通常是一件令人不愉快的事情.

我已经阅读了大量的解决方案,但没有一个适用于我的具体情况.
目前,我只有实际的Item Widgets来处理; 不是他们的价值观或指数.

这是因为我通过获取项目(需要删除).selectedItems().

这是代码:

ItemSelect = list(self.ListDialog.ContentList.selectedItems())

for x in range (0, len(ItemSelect)):
    print self.ListDialog.ContentList.removeItemWidget(ItemSelect[x])
Run Code Online (Sandbox Code Playgroud)

但是,这根本不起作用.
它不会引发错误,但不会删除所选项目.
我看到的删除项目的方法需要索引或项目的名称,我都没有.我只有实际的小部件.

我该如何删除它们?

我错过了什么吗?

我正在使用:

Python 2.7.1
PyQt4 IDLE 1.8
Windows 7

Ava*_*ris 13

takeItem()应该工作:

for SelectedItem in self.ListDialog.ContentList.selectedItems():
    self.ListDialog.ContentList.takeItem(self.ListDialog.ContentList.row(SelectedItem))
Run Code Online (Sandbox Code Playgroud)


小智 5

从ListWidget中删除项目:

item = self.listWidget.takeItem(self.listWidget.currentRow())
item = None
Run Code Online (Sandbox Code Playgroud)

  • 如果返回的"item"没有分配给任何变量,垃圾收集器是否应该回收内存?我认为"takeItem()"应该可以在不将其输出分配给任何变量的情况下工作,然后将该变量设置为"None". (2认同)