使Tkinter跳到前面-但仅相对于Tkinter程序

使Tkinter跳到前面-但仅相对于Tkinter程序,tkinter,Tkinter,一个接一个的问题 我想有一个顶级窗口(我用来导航我的其他主窗口)总是在前面。 但是我希望它只在我tkinter程序的所有窗口的前面 相反,chwin.wm_属性(“-topmost”,True)解决方案将此窗口强制放在我桌面上每个窗口的顶部(至少在这里:LinuxFedora13) 您知道其他解决方案吗?您可以在每次创建新窗口后提起所需的窗口: import Tkinter as tk root = tk.Tk() tk.Label(root, text="I'm the root").grid

一个接一个的问题

我想有一个顶级窗口(我用来导航我的其他主窗口)总是在前面。 但是我希望它只在我tkinter程序的所有窗口的前面

相反,
chwin.wm_属性(“-topmost”,True)
解决方案将此窗口强制放在我桌面上每个窗口的顶部(至少在这里:LinuxFedora13)


您知道其他解决方案吗?

您可以在每次创建新窗口后提起所需的窗口:

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()
请注意,无论创建了多少顶层,所需的窗口始终保持焦点(位于顶部)。然而,它不会超越其他应用程序(仅限于脚本制作的窗口)

您甚至可以使用
Toplevel
iconify
方法来最小化您现在不希望位于顶部的每个窗口

注意,我在Python2.7中对此进行了描述。如果您没有/使用Python,只需在其他地方应用此脚本中给出的原则。

最后,lift()方法调用没有很好地工作。当我使用它并覆盖我想保持在顶部的窗口时,此调用只允许在任务栏中突出显示窗口的图标(在不可见的窗口中执行某些操作时会发生这种情况),但窗口不会被提起

Linux的小故障?我不知道

我终于找到了一种方法:只需从必须保持在顶部的窗口调用wm_transient:

secondarywindow.wm_transient(root)
这样,secondarywindow始终位于root之上,但它可能会被我在桌面上使用的任何其他程序所掩盖