Диалоговое окно PyQt activWindow () работает, но не когда его родительское окно открыто - PullRequest
0 голосов
/ 13 ноября 2018

Диалоговое окно нашего приложения PyQt вызывается из окна проводника Windows, и, естественно, предполагается, что при создании оно переходит на передний план.Это прекрасно работает в вакууме - диалоговое окно успешно прыгает перед окном проводника, используя следующий код:

def bring_to_foreground(qwidget):
    qwidget.show()
    qwidget.raise_()
    qwidget.activateWindow()

Однако, когда главное окно приложения (которое является родительским для диалогового окна)открыто, диалоговое окно не может перейти на передний план.

Кто-нибудь может объяснить это поведение?

Из документации PyQt4 я вижу, что:

В Windows, если вы вызываете это, когда приложение в данный момент не является активным, оно не сделает его активным окном.Он изменит цвет записи панели задач, чтобы указать, что окно каким-то образом изменилось.Это связано с тем, что Microsoft не позволяет приложению прерывать действия пользователя в другом приложении.

Полагаю, это отвечает на мой вопрос, но тогда почему наша функция работает в остальное время нормально?

...