tkinter - 关闭tkinter窗口?

怎么结束Tkinter程序? 假设我有以下代码:


from Tkinter import *

def quit():
 # code to exit

root = Tk()
Button(root, text="Quit", command=quit).pack()
root.mainloop()

我应该如何定义quit函数?

时间:

可以使用:


def quit():
 root.quit()

或者


def quit():
 root.destroy()

 
root.quit()

 

换句话说,如果执行quit()命令,就会在后台中绕过root.mainloop(),root.mainloop()仍然在运行。

 
root.destroy()

 

当destroy()命令消失在root.mainloop()中时,root.mainloop()停止。

所以你想退出程序,所以你应该使用root.destroy(),因为它会停止mainloop()。

但是如果你想运行一些无限循环,并且不希望销毁它们,并且在root.mainloop()行之后执行一些代码,比如:


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()

退出python程序的常用方法:

 
sys.exit()

 

 
raise SystemExit

 

在Tkinter程序里能正常工作。

我认为你错误地理解了rtc的退出函数,这个函数不需要你定义。

首先,应按如下所示修改函数:


from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.quit).pack()
root.mainloop()

...