在PyQt4中,如何通过名称字符串从QListView\QListWidget
删除项目?
def deleteItem(itemName):
item = dialog.listWidget.indexFromItem(itemName)
dialog.listWidget.takeItem(item)
这是我到目前为止所得到的,显然将字符串输入indexFromItem
是行不通的......
答案 0 :(得分:0)
首先,使用listWidget
:
findItems
中查找该项目
items_list = dialog.listWidget.findItems(itemName,Qt.MatchExactly)
这将返回匹配的QListWidgetItem
与itemName
的匹配列表(如果只有一个项目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)
同样,您必须确保没有相同名称的项目,否则它们将被一起删除。