单击按钮后,在QLabel中删除图像


问题内容

我有显示图像的qlabel。如果用户单击“删除”按钮,我想删除图像。我可以了解点击了哪个图像

labels[i].mousePressEvent = functools.partial(self.remove_image, source_label = labels[i] ,source_image = pixmap)

但我无法使用它并与button连接。如何删除图像?


问题答案:

假设labels[]有一个labelID列表,我认为您可以执行以下操作:

labels[i].mousePressEvent = functools.partial(self.remove_image, source_label = labels[i]) #just pass to self.remove_image the label id

然后在中self.remove_image,由于label.clear()(要清除标签的内容)是一个 SLOT,
则可以将其连接以clicked直接发出信号:

def remove_image(self, label_id):
    QtCore.QObject.connect(self.deleteButton, QtCore.SIGNAL("clicked()"), label_id.clear)