为什么 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 上可能无法正常工作。如果您正在为此寻找解决方案,请参阅:
希望对大家有所帮助。
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 上可能无法正常工作。如果您正在为此寻找解决方案,请参阅:
希望对大家有所帮助。