在如何使Tkinter窗口跳到前面的问题之后,有一个问题需要解答。
我想要一个toplevel窗口(我用它来浏览我的主窗口)总是保持在最前面,但是我只希望相对于我的tkinter程序的各种窗口而言最前面。
chwin.wm_attributes("-topmost",True)
方法强制将该窗口置于桌面上每个窗口的顶部(至少在这里:Linux fedora13)。
你知道其他的解决方法吗?
在如何使Tkinter窗口跳到前面的问题之后,有一个问题需要解答。
我想要一个toplevel窗口(我用它来浏览我的主窗口)总是保持在最前面,但是我只希望相对于我的tkinter程序的各种窗口而言最前面。
chwin.wm_attributes("-topmost",True)
方法强制将该窗口置于桌面上每个窗口的顶部(至少在这里:Linux fedora13)。
你知道其他的解决方法吗?
在使用lift()方法时出现了问题。当我使用它并覆盖住想要保持在最前面的窗口时,这个调用只会让窗口的图标在任务栏中被突出显示(就像在非可见窗口中有某些动作时发生的情况),但窗口并没有被提升到最前面。
是Linux的故障吗?我不知道。
我最终发现了一种方法来实现:只需从需要始终在最前面的窗口中调用wm_transient:
secondarywindow.wm_transient(root)
import Tkinter as tk
root = tk.Tk()
tk.Label(root, text="I'm the root").grid()
main = tk.Toplevel(root)
tk.Label(main, text="I'm the one you want").grid()
def bring_to_front():
"""This function was made to demonstrate"""
tk.Toplevel(root)
# Each time a new window is created, lift the one you want above it.
main.lift()
root.after(5000, bring_to_front)
root.after(1, bring_to_front)
root.mainloop()