Диалоговое окно нашего приложения PyQt вызывается из окна проводника Windows, и, естественно, предполагается, что при создании оно переходит на передний план.Это прекрасно работает в вакууме - диалоговое окно успешно прыгает перед окном проводника, используя следующий код:
def bring_to_foreground(qwidget):
qwidget.show()
qwidget.raise_()
qwidget.activateWindow()
Однако, когда главное окно приложения (которое является родительским для диалогового окна)открыто, диалоговое окно не может перейти на передний план.
Кто-нибудь может объяснить это поведение?
Из документации PyQt4 я вижу, что:
В Windows, если вы вызываете это, когда приложение в данный момент не является активным, оно не сделает его активным окном.Он изменит цвет записи панели задач, чтобы указать, что окно каким-то образом изменилось.Это связано с тем, что Microsoft не позволяет приложению прерывать действия пользователя в другом приложении.
Полагаю, это отвечает на мой вопрос, но тогда почему наша функция работает в остальное время нормально?