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

如何实现点击Tkinter窗口下一页按钮时自动关闭当前上层窗口

你可以通过把当前顶层窗口的实例传递给下一个窗口打开函数,在打开新窗口前销毁旧窗口即可实现需求,修改后可运行的代码如下:

from tkinter import *
from tkinter import messagebox

root = Tk()
root.title("GUI练习")

def open():
    top = Toplevel()  # 新建窗口
    top.title("Kokomi")
    Label(top, text="点击下一页按钮时该窗口会自动关闭").pack()
    Button(top,text="关闭窗口", command=top.destroy).pack()
    # 将当前顶层窗口实例作为参数传给open2函数
    Button(top,text="下一页窗口", command=lambda: open2(top)).pack()

def open2(old_top):
    # 先销毁之前的上层窗口
    old_top.destroy()
    top = Toplevel()  # 新建窗口
    top.title("导航页")
    Label(top, text="结束").pack()
    Button(top, text="关闭窗口", command=top.destroy).pack()  # 销毁组件/窗口

Button(root, text="打开窗口(无需关闭该页面)", command=open).pack()

root.mainloop()

实现逻辑说明

  • 原代码中open函数内创建的top窗口是局部变量,外部函数无法直接访问,因此我们通过lambda表达式将该窗口实例作为参数传递给open2函数
  • open2函数拿到旧窗口实例后,先执行销毁操作,再创建新的顶层窗口,就实现了点击下一页自动关闭上一层窗口的效果

内容的提问来源于stack exchange,提问作者user17217552

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:10