📜  如何仅关闭Python Tkinter 中的 TopLevel 窗口?(1)

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

如何仅关闭Python Tkinter 中的 TopLevel 窗口?

在Python Tkinter中,TopLevel窗口是一种弹出式窗口,通常用于显示附加信息或执行一些任务。当我们在应用程序中使用TopLevel窗口时,我们可能需要手动关闭TopLevel窗口,而不是关闭整个应用程序。

下面我将介绍如何仅关闭Python Tkinter中的TopLevel窗口:

方法一:使用destroy()方法关闭TopLevel窗口

我们可以使用Tkinter中的destroy()方法来关闭TopLevel窗口。该方法从Tkinter小部件的父级中删除该小部件并将其销毁。以下是一个例子:

import tkinter as tk

def open_window():
    window = tk.Toplevel(root)
    label = tk.Label(window, text="这是TopLevel窗口")
    label.pack()
    button = tk.Button(window, text="关闭窗口", command=window.destroy)
    button.pack()

root = tk.Tk()
open_button = tk.Button(root, text="打开窗口", command=open_window)
open_button.pack()
root.mainloop()

在上面的代码中,我们定义了一个名为open_window()的函数,该函数创建了一个TopLevel窗口,其中包含一个“关闭窗口”按钮。当用户单击此按钮时,窗口将被关闭。

open_window()函数中,我们将destroy()方法分配给"关闭窗口"按钮的command参数,以便在用户单击按钮时销毁窗口。

方法二:使用withdraw()方法隐藏TopLevel窗口

我们可以使用Tkinter中的withdraw()方法隐藏TopLevel窗口而不是销毁它。该方法可以在不将小部件关闭的情况下使其不可见。以下是一个例子:

import tkinter as tk

def open_window():
    window = tk.Toplevel(root)
    label = tk.Label(window, text="这是TopLevel窗口")
    label.pack()
    button = tk.Button(window, text="关闭窗口", command=window.withdraw)
    button.pack()

root = tk.Tk()
open_button = tk.Button(root, text="打开窗口", command=open_window)
open_button.pack()
root.mainloop()

在上面的代码中,我们定义了一个名为open_window()的函数,该函数创建了一个TopLevel窗口,其中包含一个“关闭窗口”按钮。当用户单击此按钮时,窗口将被隐藏。

open_window()函数中,我们将withdraw()方法分配给"关闭窗口"按钮的command参数,以便在用户单击按钮时隐藏窗口。

总结

通过以上两种方式,我们可以在Python Tkinter中仅关闭TopLevel窗口。根据应用程序的需求,我们可以使用destroy()方法销毁窗口或使用withdraw()方法隐藏窗口。