2010-02-21 28 views

risposta

24

"quit() arresta l'interprete TCL, nella maggior parte dei casi ciò che si desidera, poiché anche l'app Tkinter si interrompe. Può trattarsi di un problema, ad esempio se si chiama l'app da idle. Tkinker-app, quindi se si chiama quit() nella propria app e l'interprete TCL viene terminato, anche inattivo termina (o si confonde)

destroy() termina semplicemente il mainloop e cancella tutti i widget. essere più sicuro se chiami la tua app da un'altra app di Tkinter o se hai più mainloop. "

presi da http://www.daniweb.com/forums/thread66698.html

+2

Questa risposta non è del tutto corretta. 'root.quit()' non "interrompe l'interprete TCL". Fa uscire solo "mainloop". L'interprete è ancora intatto, così come tutti i widget. Chiamare 'root.destroy()' distruggerà tutti i widget _and_ exit 'mainloop'. –

10

root.quit() cause mainloop per uscire. L'interprete è ancora intatto, come lo sono tutti i widget. Se si chiama questa funzione, è possibile avere il codice che viene eseguito dopo la chiamata a root.mainloop() e tale codice può interagire con i widget (ad esempio, ottenere un valore da un widget di immissione).

Chiamare root.destroy() distruggerà tutti i widget e uscirà mainloop. Qualsiasi codice dopo la chiamata a root.mainloop() verrà eseguito, ma qualsiasi tentativo di accedere a qualsiasi widget (ad esempio, ottenere un valore da un widget di immissione) avrà esito negativo perché il widget non esiste più.

Problemi correlati