Also ich bin ein Spiel mit Python und Tkinter, wo ich ein Popup-Fenster benötigen, wenn das Spiel beendet wird, aber wenn ich auf die Schaltfläche "Wieder abspielen" klicken, wird das Popup-Fenster nicht zerstört. Auch die Meldung auf dem Popup erscheint mit geschweiften Klammern, also „{Game over, Spieler} rot gewinnttkinter destroy funktioniert nicht
Hier ist der Popup-Fenster Code:
def gameOverPopup(winOrTie):
if winOrTie==True:
lText=("Game over, player",player,"wins!")
else:
lText=("Game over, board full!")
popup=tk.Toplevel()
winLabel=tk.Label(popup,text=lText)
winLabel.grid(column=1,row=1,padx=50,pady=25)
againButton=tk.Button(popup,text="Play again",command=resetGame(popup))
againButton.grid(column=1,row=2,padx=50,pady=25)
endButton=tk.Button(popup,text="Quit",command=window.destroy)
endButton.grid(column=1,row=3,padx=50,pady=25)
def resetGame(popup):
popup.destroy
Y Sie müssen den Aufruf von destroy mit 'popup.destroy()' aufrufen. – Jkdc
Die geschweiften Klammern sind, weil Sie 'lText' auf ein Tupel setzen. Lass die Parens fallen und mache eine Schnur daraus. – Jkdc