2017-01-05 6 views
-2

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 
+0

Y Sie müssen den Aufruf von destroy mit 'popup.destroy()' aufrufen. – Jkdc

+0

Die geschweiften Klammern sind, weil Sie 'lText' auf ein Tupel setzen. Lass die Parens fallen und mache eine Schnur daraus. – Jkdc

Antwort

1

Sie müssen destroy mit Klammern nennen:

popup.destroy() 

die Meldung korrekt anzuzeigen, muss es sich um eine Zeichenfolge, anstatt ein Tupel sein:

lText="Game over, player %s wins!" %player 
Verwandte Themen