如何让 Tkinter 窗口跳到最前面?

新手上路,请多包涵

如何让 Tkinter 应用程序跳转到最前面?目前,该窗口出现在我所有其他窗口的后面并且没有获得焦点。

我应该调用一些方法吗?

原文由 nathan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

假设您说“我的其他窗口”时指的是您的应用程序窗口,您可以在 Toplevel 或 Tk 上使用 lift() 方法:

 root.lift()

如果您希望该窗口位于所有其他窗口之上,请使用:

 root.attributes("-topmost", True)

其中 root 是您的 Toplevel 或 Tk。不要忘记 - 前面的 "topmost"

要使其成为 临时 的,请在以下之后立即禁用最顶层:

 def raise_above_all(window):
    window.attributes('-topmost', 1)
    window.attributes('-topmost', 0)

只需传入您要作为参数提出的窗口,这就可以了。

原文由 D K 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 mainloop() 之前添加以下行:

 root.lift()
root.attributes('-topmost',True)
root.after_idle(root.attributes,'-topmost',False)

它非常适合我。它在生成窗口时使窗口来到最前面,而不是一直在最前面。

原文由 user6107173 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题