我有一个QListWidget,我需要删除一些项目。
根据我的研究,这通常是一件令人不愉快的事情。
我已经阅读了大量的解决方案,但没有一个适用于我的具体情况 目前,我只有实际的Item Widgets来处理;不是他们的价值观或指数。
这是因为我通过.selectedItems()
获取了项目(需要删除)。
以下是代码:
ItemSelect = list(self.ListDialog.ContentList.selectedItems())
for x in range (0, len(ItemSelect)):
print self.ListDialog.ContentList.removeItemWidget(ItemSelect[x])
但是,这根本没有任何作用
它不会引发错误,但不会删除所选项目
我看到的删除项目的方法需要索引或项目的名称,我都没有。我只有实际的小部件。
如何删除它们?
我错过了什么吗?
我正在使用:
Python 2.7.1
PyQt4中
IDLE 1.8
Windows 7
答案 0 :(得分:13)
takeItem()应该有效:
for SelectedItem in self.ListDialog.ContentList.selectedItems():
self.ListDialog.ContentList.takeItem(self.ListDialog.ContentList.row(SelectedItem))
答案 1 :(得分:5)
从ListWidget中删除项目:
item = self.listWidget.takeItem(self.listWidget.currentRow())
item = None
答案 2 :(得分:2)
奇怪的是,没有一些直接从QListWidget中删除项目的方法...... 试试这个:
listWidget = self.ListDialog.ContentList
model = listWidget.model()
for selectedItem in listWidget.selectedItems():
qIndex = listWidget.indexFromItem(selectedItem)
print 'removing : %s' %model.data(qIndex).toString()
model.removeRow(qIndex.row())