通过字符串名称从QListView \ QListWidget中删除项目

时间:2015-12-29 22:41:05

标签: python pyqt pyqt4

在PyQt4中,如何通过名称字符串从QListView\QListWidget删除项目?

def deleteItem(itemName):
    item = dialog.listWidget.indexFromItem(itemName)
    dialog.listWidget.takeItem(item)

这是我到目前为止所得到的,显然将字符串输入indexFromItem是行不通的......

1 个答案:

答案 0 :(得分:0)

首先,使用listWidget

findItems中查找该项目

items_list = dialog.listWidget.findItems(itemName,Qt.MatchExactly)

这将返回匹配的QListWidgetItemitemName的匹配列表(如果只有一个项目itemName,则应该是一个项目的列表)

其次,致电dialog.listWidget.row()查找找到的项目的行号。

最后,使用dialog.listWidget.takeItem()

检测/那些项目

所以最后你的功能看起来像这样:

def deleteItem(itemName):
     items_list = dialog.listWidget.findItems(itemName,QtCore.Qt.MatchExactly)
     for item in items_list:
         r = dialog.listWidget.row(item)
         dialog.listWidget.takeItem(r)

同样,您必须确保没有相同名称的项目,否则它们将被一起删除。