当前位置:  开发笔记 > 编程语言 > 正文

如何关闭tkinter窗口?

如何解决《如何关闭tkinter窗口?》经验,为你挑选了5个好方法。

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

from Tkinter import *

def quit():
    # code to exit

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

我该如何定义quit退出应用程序的功能?



1> aki92..:

您应该使用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


你的第一个陈述是错误的.调用`quit`会破坏所有小部件; 如果小部件被销毁,`mainloop`将退出.
如果使用了root.quit(),那么如何在不同的脚本中再次找到窗口以便销毁(以便不继续使用系统资源)?

2> Matt Gregory..:
def quit()
    root.quit()

要么

def quit()
    root.destroy()


对不起,我找到了答案,只是想我会分享它.最好使用`root.destroy()`,因为它终止了主程序循环.见:http://www.daniweb.com/software-development/python/threads/66698](http://www.daniweb.com/software-development/python/threads/66698/299275#post299275)

3> 小智..:
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()



4> dF...:

退出Python程序的常用方法:

sys.exit()

(您也可以将退出状态传递给该状态)或

raise SystemExit

在Tkinter程序中可以正常工作。



5> 小智..:

我想你错误地理解了Tkinter的退出功能.此功能不需要您定义.

首先,您应该按如下方式修改您的函数:

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

然后,您应该使用'.pyw'后缀来保存这些文件并双击'.pyw'文件来运行您的GUI,这次,您可以通过单击Button结束GUI,您也可以找到没有令人不快的DOS窗口.(如果运行'.py'文件,则退出函数将失败.)

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有