特定窗口(或所有窗口)前面的 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 窗口的主要内容,如果未能解决你的问题,请参考以下文章
全屏 Python TKinter 或 wxPython 窗口,但“停留在所有窗口的底部”?
python - 如何在Python的Tkinter模块中使对话框窗口出现在最前面?