python tkinter 新建 toplevel 时关闭之前的toplevel

问题描述

刚学python GUI,用的tkinter

当使用一个Tk()button打开一个Toplevel时, 一般可以无限制的打开, 怎么实现在新建时自动关闭之前的toplevel?

我的gui样子如下:
主程序

尝试和思路(不知道怎么实现那种)

  1. 有试过在下面加button(手动方案),然后配合destroy(), 因为我的Toplevel只是显示一张图片,加个button会显得很奇怪

显示图片

  1. 一个实现自动的思路就是检测焦点是否在本窗口, 如果不在就destroy(),但是不知道该怎么实现,bind的检测焦点只能用于控件
阅读 6.3k
1 个回答

已解决.
引入全局变量

global top
try:
    top.destroy()    
finally:
    top = Toplevel()
    

来源:stackoverflow

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题