PyQt4-从QListWidg中删除项目小部件

2024-07-05 09:12:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我读过很多解决方案,但没有一个适用于我的特定场景。
目前,我只需要处理实际的Item小部件,而不是它们的值或索引。

这是因为我通过.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型 空闲1.8
Windows 7


Tags: 项目代码selffor部件场景解决方案item
3条回答

奇怪的是,没有直接的方法从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())

takeItem()应该可以工作:

for SelectedItem in self.ListDialog.ContentList.selectedItems():
    self.ListDialog.ContentList.takeItem(self.ListDialog.ContentList.row(SelectedItem))

从ListWidget中删除项目:

item = self.listWidget.takeItem(self.listWidget.currentRow())
item = None

相关问题 更多 >