사진을 QGraphicsScene
에로드하는 중 사진을 클릭하면 클릭 한 영역에 원이 배치됩니다. 그런 다음 포인트 목록을 보관할 맞춤 위젯을 추가하고 있습니다. 이 위젯에는 두 개의 버튼이 있습니다. 그들 중 하나는 원을 움직일 수 있고 다른 하나는 그것을 삭제하는 것입니다. 현재 삭제 부분에 붙어 있습니다.PyQt : QListWidget에서 사용자 정의 위젯 제거
문제
내가 잘 원을 삭제할 수 있습니다 내가 목록에서 위젯을 삭제할 수 있습니다. 문제는 위젯에서 버튼을 사용하고 항목을 선택하지 않아서 내가 그 지점을 삭제하는 방법을 모르겠다는 이유로 위젯이 있던 곳의 목록에 여전히 공간이 있다는 것입니다. 또한 무리를 삭제 한 다음 일부 Python을 추가하려고하면 자체가 중단되고 그 이유를 알 수 없습니다.
내가 원하는 것은 실제로 참조가 없거나 단추를 기본 창으로 옮기고 사용자 지정 위젯에서 제거하는 것이 더 나은 경우 수행 할 수 있는지 확실하지 않습니다. 그것이 가능하다면 나는 그것을 가지고있는 그대로 유지하고 싶습니다.
GitHub에 몇 개의 파일이 있으므로 공간을 많이 차지하지 않을 것입니다. 어떤 도움이라도 대단히 감사합니다. (에서 Main.py)
GitHub의 링크
관련 코드 :
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)
사진