2011-11-04 4 views
10
import tkinter 


class App(): 
    def __init__(self): 
     self.root = Tkinter.Tk() 
     button = Tkinter.Button(self.root, text = 'root quit', command=self.quit) 
     button.pack() 
     self.root.mainloop() 

    def quit(self): 
     self.root.destroy 

app = App() 

Comment puis-je faire ma pour fermer la fenêtre?Fonction pour fermer la fenêtre dans Tkinter

Répondre

38
def quit(self): 
    self.root.destroy() 

Ajouter des parenthèses après destroy pour appeler la méthode.

Lorsque vous utilisez command=self.root.destroy vous passez la méthode à Tkinter.Buttonsans les parenthèses parce que vous voulez Tkinter.Button pour stocker la méthode pour les futurs appels, de ne pas l'appeler immédiatement lorsque le bouton est créé.

Mais lorsque vous définissez la méthode quit, vous devez appeler self.root.destroy() dans le corps de la méthode, car la méthode a été appelée.

+0

+1 pour l'explication des parenthèses, juste ce que je cherchais! – AndreasT

1
class App(): 
    def __init__(self): 
     self.root = Tkinter.Tk() 
     button = Tkinter.Button(self.root, text = 'root quit', command=self.quit) 
     button.pack() 
     self.root.mainloop() 

    def quit(self): 
     self.root.destroy() 

app = App() 
0
def exit(self): 
    self.frame.destroy() 
exit_btn=Button(self.frame,text='Exit',command=self.exit,activebackground='grey',activeforeground='#AB78F1',bg='#58F0AB',highlightcolor='red',padx='10px',pady='3px') 
exit_btn.place(relx=0.45,rely=0.35) 

Cela a fonctionné pour moi pour détruire mon cadre Tkinter sur cliquant sur le bouton de sortie.