Ich lade in ein Bild in eine QGraphicsScene
dann wenn Sie auf das Foto klicken wird es Kreise in dem Bereich, der angeklickt wird. Dann füge ich ein benutzerdefiniertes Widget hinzu, das eine Liste der Punkte enthält. Dieses Widget hat ein paar Knöpfe. einer von ihnen wird in der Lage sein, den Kreis zu bewegen, und der andere wird es sein, ihn zu löschen. Ich bin derzeit auf der Löschseite stecken.PyQt: Entfernen von benutzerdefinierten Widgets aus einem QListWidget
Problem
ich ganz gut den Kreis löschen kann und ich das Widget aus der Liste löschen. Das Problem ist, dass es immer noch einen Platz in der Liste gibt, von wo das Widget einmal war und da ich den Knopf vom Widget benutze und den Gegenstand nicht auswähle, bin ich mir nicht sicher, wie ich diesen Fleck löschen soll. Auch wenn ich einen Haufen lösche und dann versuche, etwas Python hinzuzufügen, stürzt sein Selbst ab und ich habe keine Ahnung warum.
Ich bin mir nicht sicher, ob das, was ich will, getan werden kann, da es wirklich keine Referenz gibt oder wenn ich besser die Schaltflächen zum Hauptfenster verschiebe und sie aus dem benutzerdefinierten Widget entferne. Wenn es möglich ist, möchte ich es so halten, wie ich es habe.
Es gibt ein paar Dateien, also werde ich es auf GitHub setzen, damit ich nicht viel Platz wegnehme. Jede Hilfe wird sehr geschätzt.
GitHub Link-
Der entsprechende Code (von Main.py):
class MainWindow(QMainWindow, Ui_MainWindow):
...
def Add_History(self,pos):
self.HistoryWidget = HistoryList()
self.HistoryWidget.setObjectName("HistoryWidget_"+ str(Constents.analysisCount))
myQListWidgetItem = QListWidgetItem(self.History_List)
myQListWidgetItem.setSizeHint(self.HistoryWidget.sizeHint())
self.History_List.addItem(myQListWidgetItem)
self.History_List.setItemWidget(myQListWidgetItem, self.HistoryWidget)
self.HistoryWidget.buttonPushed.connect(self.deleteObject)
self.HistoryWidget.setXpoint(str(pos.x()))
self.HistoryWidget.setYpoint(str(pos.y()))
self.HistoryWidget.setHistoryName("Point "+ str(Constents.analysisCount))
Constents.analysisCount = Constents.analysisCount + 1
def deleteObject(self):
sender = self.sender() #var of object that sent the request
row_number = sender.objectName().split("_")
number = row_number[1]
x,y = Constents.analysisDetails[str(number)]# getting xy for object
self.loadPicture.findAndRemoveAnalysisPoint(x,y) #calling the class with the scense to delete it
Constents.analysisDetails.pop(str(number)) # get rid of the object in the variables
HistoryWidget = self.findChildren(HistoryList, "HistoryWidget_"+number)[0] #find the actual object
HistoryWidget.deleteLater() #delete that object
#Simport pdb; pdb.set_trace()
#self.History_List.takeItem(HistoryWidget)
Bilder