Вы должны использовать, destroy()
чтобы закрыть окно tkinter.
from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.destroy).pack()
root.mainloop()
Пояснение:
root.quit()
Выше линии только Пропускаетroot.mainloop()
т.е. по- root.mainloop()
прежнему будет работать в фоновом режиме , если quit()
команда будет выполнена.
root.destroy()
Пока destroy()
команда исчезает, root.mainloop()
т.е. root.mainloop()
прекращается.
Так как вы просто хотите выйти из программы, вы должны использовать, root.destroy()
поскольку она остановит mainloop()
.
Но если вы хотите запустить какой-то бесконечный цикл, и вы не хотите разрушать окно Tk и хотите выполнить какой-то код после root.mainloop()
строки, вам следует использовать root.quit()
. Пример:
from Tkinter import *
def quit():
global root
root.quit()
root = Tk()
while True:
Button(root, text="Quit", command=quit).pack()
root.mainloop()