如何在Tkinter弹出的Toplevel新窗口中添加取消按钮
解决方案
你只需要在openNewWindow函数的新窗口初始化逻辑后,添加绑定了关闭功能的取消按钮即可,修改后的完整代码如下:
from tkinter import * from tkinter.ttk import * master = Tk() master.geometry("200x200") def openNewWindow(): newWindow = Toplevel(master) newWindow.title("New Window") newWindow.geometry("200x200") Label(newWindow, text="This is a new window").pack(pady=20) # 新增取消按钮 cancel_btn = Button( newWindow, text="取消", # 点击按钮时销毁新窗口 command=lambda: newWindow.destroy() ) cancel_btn.pack(pady=10) label = Label(master, text="This is the main window") label.pack(pady=10) btn = Button(master, text="Click to open a new window", command=openNewWindow) btn.pack(pady=10) mainloop()
核心逻辑说明
- Tkinter所有窗口组件都自带
destroy()方法,调用后会直接销毁对应组件,此处调用新弹出的Toplevel实例的destroy()方法就能关闭这个弹窗,不会影响主窗口运行 - 如果你需要在关闭弹窗时额外执行其他逻辑,可以单独定义嵌套的关闭函数:
def openNewWindow(): newWindow = Toplevel(master) # 其他窗口初始化代码... def close_window(): # 此处可以加其他需要执行的逻辑,比如保存输入、清空缓存等 newWindow.destroy() cancel_btn = Button(newWindow, text="取消", command=close_window) cancel_btn.pack()
内容的提问来源于stack exchange,提问作者surrealduck
相关产品推荐
相关产品推荐

