Bạn nên sử dụng destroy()
để đóng cửa sổ tkinter.
from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.destroy).pack()
root.mainloop()
Giải trình:
root.quit()
Dòng trên chỉ Bỏ qua các root.mainloop()
ví dụ root.mainloop()
vẫn sẽ chạy ở chế độ nền nếu quit()
lệnh được thực thi.
root.destroy()
destroy()
Lệnh While biến mất root.mainloop()
tức là root.mainloop()
dừng lại.
Vì vậy, khi bạn chỉ muốn thoát khỏi chương trình, bạn nên sử dụng root.destroy()
vì nó sẽ dừng mainloop()
.
Nhưng nếu bạn muốn chạy một số vòng lặp vô hạn và bạn không muốn phá hủy cửa sổ Tk của mình và muốn thực thi một số mã sau root.mainloop()
dòng thì bạn nên sử dụng root.quit()
. Ví dụ:
from Tkinter import *
def quit():
global root
root.quit()
root = Tk()
while True:
Button(root, text="Quit", command=quit).pack()
root.mainloop()