在PyQt4中,如何通過名稱字符串從QListView\QListWidget
中刪除項目?通過字符串名稱從QListView QListWidget中刪除項目
def deleteItem(itemName):
item = dialog.listWidget.indexFromItem(itemName)
dialog.listWidget.takeItem(item)
這是我這麼遠,明明餵養字符串indexFromItem
是不工作...
在PyQt4中,如何通過名稱字符串從QListView\QListWidget
中刪除項目?通過字符串名稱從QListView QListWidget中刪除項目
def deleteItem(itemName):
item = dialog.listWidget.indexFromItem(itemName)
dialog.listWidget.takeItem(item)
這是我這麼遠,明明餵養字符串indexFromItem
是不工作...
首先,使用findItems
查找項listWidget
:
items_list = dialog.listWidget.findItems(itemName,Qt.MatchExactly)
這將返回一個匹配的QListWidgetItem
列表與itemName
(如果只有一個項目與itemName
0應該是一個項目的列表)
其次,請致電dialog.listWidget.row()
查找找到的物品的行號。
最後,detele那/使用dialog.listWidget.takeItem()
所以在最後的項目(S),你的作用是這樣的:
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)
同樣,你必須確保沒有任何物品與相同的名稱,否則他們將一起被刪除。
so'inventoryList'' listWidget'以及? –
對不起,我正在用通用的替換我自己的變量,並忘記替換它們。修復了問題。 – Nix