📜  python tkinter 关闭 gui 窗口 - Python (1)

📅  最后修改于: 2023-12-03 15:34:05.314000             🧑  作者: Mango

Python tkinter 关闭 gui 窗口

在Python中使用Tkinter创建GUI界面时,如何在程序中安全地关闭窗口是非常重要的。下面为大家介绍几种常用的关闭窗口的方法。

1. 通过destroy()方法关闭窗口
import tkinter as tk

def close_window():
    root.destroy()

root = tk.Tk()

button = tk.Button(root, text="关闭", command=close_window)
button.pack()

root.mainloop()

上述代码中,close_window()函数使用destroy()方法关闭窗口,该方法会立即终止Tkinter事件循环并且销毁所有控件。因此,这种方法是当前最快速、最可靠的方式来关闭窗口。

2. 通过quit()方法关闭窗口
import tkinter as tk

def close_window():
    root.quit()

root = tk.Tk()

button = tk.Button(root, text="关闭", command=close_window)
button.pack()

root.mainloop()

在这种情况下,close_window()函数使用quit()方法关闭窗口。这种方法类似于destroy()方法,但不会立即销毁所有控件,它会等待事件循环空闲时自动销毁所有控件。

请注意,如果您在程序的其他地方使用了tk.mainloop(),或者其他部分需要窗口保持打开状态以便继续运行,那么使用quit()方法可能会导致意外的结果。

3. 通过wm_protocol()方法关闭窗口

另一种关闭窗口的方法是使用wm_protocol()方法,并使用WM_DELETE_WINDOW协议让操作系统通知窗口应该如何关闭。

import tkinter as tk

def on_closing():
    if tk.messagebox.askokcancel("Quit", "是否关闭窗口?"):
        root.destroy()

root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", on_closing)

root.mainloop()

在这种情况下,on_closing()函数会在程序关闭窗口后执行。如果用户确认关闭窗口,则使用destroy()方法关闭窗口,否则什么也不做。

需要注意的是,在这种方法中,窗口关闭的请求需要通过用户操作来完成。如果您必须在程序的其他部分关闭窗口,则应该使用destroy()quit()方法。

总结

以上是几种常用的关闭Python tkinter GUI窗口的方法。其中,在大多数情况下,使用destroy()方法是最简单、最可靠的方式来关闭窗口。但是,如果您必须在程序的其他地方等待窗口关闭请求,则使用wm_protocol()方法可能是更合适的方式。