在tkinter中,可以通过判断子窗口的状态来检测子窗口是打开还是关闭。以下是一种实现方法:
import tkinter as tk
def open_window():
global child_window
child_window = tk.Toplevel(root)
child_window.protocol("WM_DELETE_WINDOW", close_window)
child_window.state = "open"
def close_window():
child_window.state = "closed"
child_window.destroy()
root = tk.Tk()
child_window = None
open_button = tk.Button(root, text="Open Window", command=open_window)
open_button.pack()
root.mainloop()
child_window
的全局变量,并将其初始状态设置为关闭。open_window()
函数用于打开子窗口。它创建一个Toplevel
对象,并将child_window
的状态设置为打开。我们还使用protocol
方法来处理子窗口的关闭事件,以确保在关闭子窗口时能够正确更新状态。close_window()
函数用于关闭子窗口。它将child_window
的状态设置为关闭,并销毁子窗口。open_button
,点击该按钮将调用open_window()
函数来打开子窗口。通过检查child_window
的状态变量,我们可以确定子窗口是打开还是关闭。例如,可以使用以下代码来检测子窗口的状态:
if child_window.state == "open":
print("子窗口已打开")
else:
print("子窗口已关闭")
这样,我们就可以根据子窗口的状态来进行相应的操作或判断。
领取专属 10元无门槛券
手把手带您无忧上云