为什么 Toplevel window 在主 window 最小化时会被销毁?

Why does a Toplevel window get destroyed when the main window is minimized?

from tkinter import *

root = Tk()
root.geometry("500x500")

toplevel = Toplevel()
toplevel.attributes("-toolwindow" , 1)

mainloop()

在这段代码中,当我最小化主 window 并再次打开它时,顶层 window 消失了。

这是描述我的问题的图片 (GIF):

有什么办法可以避免这种情况吗?

如果有人能帮助我就太好了。

(OS: Windows 10, Python版本:3.9.1, Tkinter 版本:8.6)

工具window属性是专门设计用来在根window隐藏时使window隐藏的。如果您不想要这种行为,请不要设置该属性。

在acw1668的帮助下,自己找到了答案

顶层window不消失;相反,它只是落后于所有 windows.

有办法把它带回来:

from tkinter import *

root = Tk()
root.geometry("500x500")

def bring_window_back(e):
    toplevel.attributes('-topmost' , 1)
    toplevel.attributes('-topmost' , 0)
    
toplevel = Toplevel(root)
toplevel.attributes("-toolwindow" , 1)

root.bind("<Map>" , bring_window_back)

mainloop()

注意:<Map> 绑定在 linux 上可能无法正常工作。如果您正在为此寻找解决方案,请参阅:

希望对大家有所帮助。