小编Chr*_*tex的帖子

当按下小部件中的按钮时,PyQt5 删除 QListWidgetItem

我有一个listWidget包含多个QListWidgetItem的,为了简单起见,我们假设每个都由一个和一个被调用QListWidgetItem的 组成。这是用以下代码组装的:QWidgetQPushButtondelete

class widgetItem(QtWidgets.QWidget):
    def __init__(self, parent):
        super(widgetItem, self).__init__()
        uic.loadUi('UIfiles/trainingWidget.ui', self) # Load the .ui file

        self.listWidgetItem = QtWidgets.QListWidgetItem()
        self.listWidgetItem.setSizeHint(self.sizeHint())
        self.delete.clicked.connect(self.deleteSelf)
        parent.listWidget.addItem(self.listWidgetItem)
        parent.listWidget.setItemWidget(self.listWidgetItem, self)
Run Code Online (Sandbox Code Playgroud)

这在主应用程序中被调用:

def additem(self):
    self.referenceDict[self.itemID] = widgetItem(self)  
Run Code Online (Sandbox Code Playgroud)

现在,我的目标是在按下按钮时从 referenceDict 和 listWidget 中删除这个特定的小部件。每个widgetItem也有自己的itemID作为字符串,并且可以访问listWidget以及referenceDict。我如何写这个deleteSelf?我尝试过使用self.deleteLater,但似乎它只删除了QWidget而不是删除了QListWidgetItem。调用self.listWidgetItem.deleteLater会引发属性错误,因为无法通过这种方式删除它。我也尝试过parent.referenceDict.pop(self.itemID),但由于某种原因,尽管当我打印字典时两个键都匹配,但它还是引发了一个键错误。

python pyqt5

5
推荐指数
1
解决办法
626
查看次数

标签 统计

pyqt5 ×1

python ×1