私は画像をQGraphicsScene
にロードしています。その画像をクリックすると、クリックされた領域に円が配置されます。次に、私はポイントのリストを保持するカスタムウィジェットを追加しています。このウィジェットには2つのボタンがあります。そのうちの1人はサークルを移動でき、もう1人はサークルを削除することになります。私は現在、削除部分に固執しています。PyQt:QListWidgetからカスタムウィジェットを削除する
問題
私はちょうど罰金円を削除することができますし、私は、リストからウィジェットを削除することができます。問題は、まだウィジェットがあった場所と、ウィジェットからボタンを使用していてアイテムを選択していないため、その場所を削除する方法がわからないというスペースがリストに残っていることです。また、私は束を削除し、いくつかのPythonを追加しようとすると、その自己がクラッシュし、私はなぜ分かりません。
実際には参照がないため、またはメインウィンドウにボタンを移動してカスタムウィジェットからボタンを取り除いたほうがよい場合は、私がしたいことができるかどうかはわかりません。可能であれば、私はそれをそのまま維持したいと考えています。
ファイルがいくつかありますので、私はGitHubに入れて、1トンのスペースを取らないようにします。どんな助けでも大歓迎です。 (から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)
写真