2011-11-04 82 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() 

¿Cómo puedo hacer que mi función quit para cerrar la ventana?Función para cerrar la ventana en Tkinter

Respuesta

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

Agregue paréntesis después de destroy para llamar al método.

Cuando se utiliza command=self.root.destroy que pase el método para Tkinter.Button sin los paréntesis, porque quiere Tkinter.Button para almacenar el método para realizar llamadas de futuro, no para llamar inmediatamente cuando se crea el botón.

Pero cuando define el método quit, necesita llamar al self.root.destroy() en el cuerpo del método porque para entonces se ha llamado al método.

+0

+1 para la explicación de paréntesis, ¡justo lo que estaba buscando! – 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) 

Esto funcionó para mí para destruir mi marco de Tkinter clic en el botón de salida.

Cuestiones relacionadas