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
,当按钮被点击时,它会调用root.destroy()
来关闭整个窗口。root
是Tk
类的一个实例,代表了主窗口。WM_DELETE_WINDOW
协议来阻止窗口关闭。示例代码如下:
import tkinter as tk def on_close(): # 这里可以添加提示用户保存数据等操作 print("窗口关闭被阻止") return root = tk.Tk() root.protocol("WM_DELETE_WINDOW", on_close) root.mainloop()on_close
函数会被调用。这里只是简单地打印了一条消息,但实际上可以在这里添加逻辑来询问用户是否要保存数据等操作,并且如果不想关闭窗口,可以不调用root.destroy()
,从而阻止窗口关闭。SubWindow
类代表子窗口,当点击主窗口中的按钮时,close_all_windows
函数会被调用,它通过root.destroy()
来关闭主窗口,同时也会关闭所有相关的子窗口,因为子窗口是依赖于主窗口的。如果子窗口有自己独立的关闭逻辑,也可以在子窗口类中定义相应的destroy
方法调用。领取专属 10元无门槛券
手把手带您无忧上云