2024-04-24 10:25:01 发布
网友
如何结束Tkinter程序?假设我有这个代码:
from Tkinter import * def quit(): # code to exit root = Tk() Button(root, text="Quit", command=quit).pack() root.mainloop()
如何定义quit函数以退出应用程序?
quit
def quit() root.quit()
或者
def quit() root.destroy()
您应该使用destroy()关闭tkinter窗口。
destroy()
from Tkinter import * root = Tk() Button(root, text="Quit", command=root.destroy).pack() root.mainloop()
说明:
root.quit()
如果执行quit()命令,上面的行只是绕过root.mainloop()即root.mainloop()仍将在后台运行。
quit()
root.mainloop()
root.destroy()
当destroy()命令消失时root.mainloop()即root.mainloop()停止。
因此,如果您只想退出程序,那么应该使用root.destroy(),因为它会停止mainloop()。
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() #do something
import Tkinter as tk def quit(root): root.destroy() root = tk.Tk() tk.Button(root, text="Quit", command=lambda root=root:quit(root)).pack() root.mainloop()
或者
您应该使用
destroy()
关闭tkinter窗口。说明:
如果执行
quit()
命令,上面的行只是绕过root.mainloop()
即root.mainloop()
仍将在后台运行。当
destroy()
命令消失时root.mainloop()
即root.mainloop()
停止。因此,如果您只想退出程序,那么应该使用
root.destroy()
,因为它会停止mainloop()
。但是如果您想运行一些无限循环,并且不想破坏您的Tk窗口,并且想在
root.mainloop()
行之后执行一些代码,那么您应该使用root.quit()
。例如:相关问题 更多 >
编程相关推荐