2010-02-21 16 views

Respuesta

24

"quit() detiene el intérprete TCL. Esto es en la mayoría de los casos lo que quiere, porque su aplicación Tkinter también se detendrá. Puede ser un problema si llama a su aplicación desde inactivo. Tkinker la aplicación, por lo que si se llama a dejar de fumar() en su aplicación y el intérprete TCL se termina, inactivo también por terminado (o se confunden).

destroy() simplemente termina la mainloop y elimina todos los widgets. por lo que parece para estar más seguro si llama a su aplicación desde otra aplicación Tkinter, o si tiene múltiples mainloops ".

tomado de http://www.daniweb.com/forums/thread66698.html

+2

Esta respuesta no es del todo correcta. 'root.quit()' no "detiene el intérprete de TCL". Solo hace que 'mainloop' salga. El intérprete sigue intacto, como todos los widgets. Llamar a 'root.destroy()' destruirá todos los widgets _y_ saldrá 'mainloop'. –

10

root.quit() causas Mainloop para salir. El intérprete sigue intacto, como todos los widgets. Si llama a esta función, puede tener un código que se ejecuta después de la llamada al root.mainloop(), y ese código puede interactuar con los widgets (por ejemplo, obtener un valor de un widget de entrada).

Llamar a root.destroy() destruirá todos los widgets y saldrá de mainloop. Se ejecutará cualquier código después de la llamada al root.mainloop(), pero cualquier intento de acceder a widgets (por ejemplo, obtener un valor de un widget de entrada) fallará porque el widget ya no existe.

Cuestiones relacionadas