如何检测一个窗口是否在其他窗口的前面

如何检测一个窗口是否在其他窗口的前面

当父窗口被聚焦时,有没有办法将子窗口带到前面?我试图解决的问题是:我有一个父窗口(根)和一个称为“菜单”的子窗口(TopLevel)。子窗口是一个浮动菜单,上面有几个按钮,并且没有标题栏。

如果我设置menu.wm_attributes('-topmost',1),那么名为“菜单”的子窗口始终位于顶部,即使我打开另一个应用程序,菜单也会位于所有窗口之上,这是不太实际的。

如果我重置了menu.wm_attributes(‘- the’,0)并且我把焦点放在父窗口上,子窗口会留在所有其他窗口后面,我看不到它。如果我正在运行我的应用程序,然后不得不打开另一个应用程序,如Dbeaver或Firefox,就会发生这种情况。然后我把我的应用程序放在前面,但孩子们留在了Dbeaver或Firefox后面。

我尝试做的是检测主窗口何时被聚焦,这样我就可以将子窗口放在前面,这样根窗口和顶层都在前面。

我在网上做了广泛的搜索。我发现了很多关于检测窗口是打开还是关闭的信息,但没有关于检测窗口是否打开的信息。

我使用python 3.8和tkinter。

以下是我到目前为止在该部分代码中的内容。虽然还不能完美地工作,但已经非常接近了:

代码语言:javascript复制def push_menu_front(event):

focus = 0

focus += 1

if focus != 0:

print("focus is 1")

menu.wm_attributes('-topmost', 1)

def push_menu_back(event):

focus = 0

focus += 1

if focus != 0:

print("focus is 0")

menu.wm_attributes('-topmost', 0)

root.bind("", bring_menu_front)

root.bind("", bring_menu_back)

相关尊享内容

泽心名字寓意和解析
365足球外围平台

泽心名字寓意和解析

📅 11-09 👑 333
手机酷狗怎么扫描添加本地歌曲、MP3
365bet中国官网

手机酷狗怎么扫描添加本地歌曲、MP3

📅 09-29 👑 68
磁盘到底是怎样工作的?一文理解硬盘结构
365bet中国官网

磁盘到底是怎样工作的?一文理解硬盘结构

📅 01-01 👑 942
[共度晨光]世界杯十大精彩扑救
365足球外围平台

[共度晨光]世界杯十大精彩扑救

📅 07-16 👑 69