当父窗口被聚焦时,有没有办法将子窗口带到前面?我试图解决的问题是:我有一个父窗口(根)和一个称为“菜单”的子窗口(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("
root.bind("