La aplicación Python Tkinter no se cierra correctamente

from TKinter import * class Ui(Frame): def __init__(self) Frame.__init__(self, None) self.grid() bquit=Button(self, text="Quit", command=self.quit_pressed) bquit.grid(row=0, column=0) def quit_pressed(self): self.destroy() app=Ui() app.mainloop() 

¿Por qué este progtwig Tkinter no finaliza correctamente cuando presiono el botón “Salir”?

Con self.destroy () solo estás destruyendo el Frame, no el contenedor de nivel superior, necesitas hacer self.master.destroy () para que salga correctamente

La razón por la que esto no funciona es porque está utilizando una forma incorrecta de finalizar el progtwig en quit_pressed. Lo que estás haciendo ahora mismo es matar el marco del yo, no el marco de la raíz. El cuadro propio es un cuadro nuevo que has insertado en el cuadro raíz, por lo tanto, cuando eliminas el cuadro propio, no estás eliminando el cuadro raíz. Esto puede sonar confuso debido a mi estilo de escritura, así que déjeme dar un ejemplo.

Actualmente tienes

 def quit_pressed(self): self.destroy() #This destroys the current self frame, not the root frame which is a different frame entirely 

Puedes remediar esto cambiando la función a esto,

 def quit_pressed(self): quit() #This will kill the application itself, not the self frame.