我们的PyQt应用程序的对话框是从Windows资源管理器窗口调用的,自然应该在创建时跳到最前面。这在真空中非常有用-使用以下代码,对话框窗口成功跳到资源管理器窗口的前面:
def bring_to_foreground(qwidget):
qwidget.show()
qwidget.raise_()
qwidget.activateWindow()
但是,当应用程序的主窗口(是对话框窗口的父窗口)打开时,对话框窗口不能跳到最前面。
任何人都可以解释这种行为吗?
从PyQt4 documentation中,我可以看到:
在Windows上,如果您在应用程序当前不是活动的应用程序时调用它,则它将不会使其成为活动的窗口。它将更改任务栏条目的颜色,以指示窗口已经过某种更改。这是因为Microsoft不允许应用程序中断用户在另一个应用程序中当前正在执行的操作。
我想这回答了我的问题,但是为什么我们的功能在其余时间正常工作?