特定窗口(或所有窗口)前面的 Tkinter 窗口

Posted

技术标签:

【中文标题】特定窗口(或所有窗口)前面的 Tkinter 窗口【英文标题】:Tkinter window in front of specific window (or all windows) 【发布时间】:2013-08-04 22:49:45 【问题描述】:

我正在 tkinter for windows 中使用 python 编写一个小型 GUI 程序。 我的窗口必须在全屏游戏窗口的前面。

目前,我使用这一行:

self.root.attributes("-topmost", 1)

适用于普通窗口(浏览器、资源管理器...),但如果我以全屏模式启动游戏,我的窗口会隐藏在游戏后面。

为什么会这样?调用游戏可能类似于覆盖我的属性的-topmost True

我的问题还有其他解决方案吗?也许可以告诉windows,我的窗口应该在特定窗口(游戏窗口)的前面?

【问题讨论】:

“我的窗口”是由创建全屏窗口的同一程序创建的Toplevel 的实例,还是这个全屏游戏是其他程序? 该游戏是一个完全不相关的程序(并且是封闭源代码) 【参考方案1】:

好吧,根据this,在windows中,你应该使用下面的代码来完成你的工作:

import win32ui, win32con, win32gui
hwnd = int(eval(<toplevel>.wm_frame())) # Get the window info from the
window manager
win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0, 0, 0, 0,
win32con.SWP_NOMOVE | win32con.SWP_NOSIZE)

但我对此表示怀疑,因为您知道 Windows 程序的行为仍然是个谜,因为它的源代码是封闭的..

【讨论】:

以上是关于特定窗口(或所有窗口)前面的 Tkinter 窗口的主要内容,如果未能解决你的问题,请参考以下文章

当特定窗口关闭时,如何关闭所有 Tkinter 窗口?

全屏 Python TKinter 或 wxPython 窗口,但“停留在所有窗口的底部”?

python - 如何在Python的Tkinter模块中使对话框窗口出现在最前面?

如何将窗口应用程序 python/tkinter 放置在屏幕上的特定位置?

python怎么用tkinter

运行时 Tkinter 窗口为空白