如何实现点击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
相关产品推荐
相关产品推荐

