我该如何结束Tkinter程序?假设我有这段代码:
from Tkinter import *
def quit():
    # code to exit
root = Tk()
Button(root, text="Quit", command=quit).pack()
root.mainloop()
我该如何定义quit退出应用程序的功能?
aki*_*i92 88
您应该使用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()
    #do something
Mat*_*ory 36
def quit()
    root.quit()
要么
def quit()
    root.destroy()
小智 15
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程序中可以正常工作。
小智 6
我想你错误地理解了Tkinter的退出功能.此功能不需要您定义.
首先,您应该按如下方式修改您的函数:
from Tkinter import *
root = Tk()
Button(root, text="Quit", command=root.quit).pack()
root.mainloop()
然后,您应该使用'.pyw'后缀来保存这些文件并双击'.pyw'文件来运行您的GUI,这次,您可以通过单击Button结束GUI,您也可以找到没有令人不快的DOS窗口.(如果运行'.py'文件,则退出函数将失败.)
小智 5
在混乱的情况下照明...
def quit(self):
    self.destroy()
    exit()
A)destroy() 停止主循环并杀死窗口,但让 python 继续运行
B) exit() 停止整个过程
只是为了澄清以防有人错过了 destroy() 正在做什么,并且 OP 还询问了如何“结束” tkinter 程序。