You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 19:24:04