【问题标题】:Python: How to close the previous Main (top) tkinter windowsPython:如何关闭以前的主(顶部)tkinter 窗口
【发布时间】:2017-05-18 03:19:45
【问题描述】:

我希望我的脚本能够以这样的方式工作,关闭 tkinter 中之前的所有窗口。

如果我最小化现有的弹出窗口并再次运行相同的脚本,它将再次弹出新窗口。当我再次运行脚本时,如何关闭已经存在的窗口?

简单代码:

import Tkinter as tk
root = tk.Tk()
root.mainloop()

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    如果你检查本地变量中的所有变量,看看你是否有 tk 类型?

    import tkinter as tk
    
    root = tk.Tk()
    
    tk_type = type(root)
    print(tk_type)
    var=0
    for var in locals().items():
        if type(var[1]) == tk_type:
          print(var, 'to be deleted')
    
    root.mainloop()
    

    类似这样的东西,您可以将测试放在类的开头,看看它是否存在其他 TK 窗口对象。 我确信它应该存在更好的解决方案。

    【讨论】:

    • :它不工作。它假设工作就像,如果我运行脚本,会弹出 tk 窗口。我最小化 tk 窗口,我将再次运行相同的脚本,它应该删除旧窗口并弹出新窗口
    • 好的。那时我误会了。您是否尝试过使用 os 模块 stackoverflow.com/questions/3054740/… 我认为是 os 能够关闭另一个 python 脚本。问题是操作系统如何知道要关闭哪些脚本(那些有 tkinter 窗口的)。
    • 感谢您的信息。我没有得到如何在我的相同代码中实现
    猜你喜欢
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多