我有一个listWidget
,它包含多个QListWidgetItem
,为了简单起见,让我们假设每个QListWidgetItem
由QWidget
和QPushButton
组成,QPushButton
称为delete
.这是用以下代码汇编的:
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)
这是在主应用程序中调用的,如下所示:
def additem(self):
self.referenceDict[self.itemID] = widgetItem(self)
现在,我的目标是在按下按钮时,将这个特定的小部件从ferenceDict和listWidget中删除.每个WidgetItem也有自己的字符串形式的ItemID,并且可以访问listWidget和ferenceDict.我怎么写这deleteSelf?
?我试过用self.deleteLater
,但似乎只删除了QWidget
,而没有删除QListWidgetItem
.调用self.listWidgetItem.deleteLater
会引发属性错误,因为它不能以这种方式删除.我也try 了parent.referenceDict.pop(self.itemID)
,但由于某种原因,它引发了一个键错误,尽管当我打印出词典时,两个键都匹配.