首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何关闭tkinter窗口?

问如何关闭tkinter窗口?
EN

Stack Overflow用户
提问于 2008-09-21 20:40:05
回答 25查看 349.1K关注 0票数 110

如何结束Tkinter程序?假设我有这样的代码:

代码语言:javascript
复制
from Tkinter import *

def quit():
    # code to exit

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

我应该如何定义退出应用程序的quit函数?

EN

回答 25

Stack Overflow用户

回答已采纳

发布于 2013-03-23 02:39:54

您应该使用 destroy() 关闭tkinter窗口。

代码语言:javascript
复制
from Tkinter import *

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

说明:

代码语言:javascript
复制
root.quit()

上面这行代码只是绕过了,如果执行了quit()命令,root.mainloop()也会在后台运行,也就是说root.mainloop()仍然会在后台运行。

代码语言:javascript
复制
root.destroy()

当destroy()命令消失时,root.mainloop()也就是root.mainloop()停止。

因此,由于您只想退出程序,所以您应该使用root.destroy(),因为它将停止mainloop()。

但是如果你想运行一些无限循环,又不想破坏你的Tk窗口,又想在root.mainloop()行之后执行一些代码,那么你应该使用root.quit()。例如:

代码语言:javascript
复制
from Tkinter import *
def quit():
    global root
    root.quit()

root = Tk()
while True:
    Button(root, text="Quit", command=quit).pack()
    root.mainloop()
    #do something
票数 148
EN

Stack Overflow用户

发布于 2008-09-21 12:44:02

代码语言:javascript
复制
def quit()
    root.quit()

或

代码语言:javascript
复制
def quit()
    root.destroy()
票数 44
EN

Stack Overflow用户

发布于 2008-11-17 02:36:56

代码语言:javascript
复制
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()
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/110923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档