使Tkinter跳到前面-但仅相对于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
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之上,但它可能会被我在桌面上使用的任何其他程序所掩盖