Поднимите модальный QDialog, когда пользователь пытается активировать MainWindow

у нас есть QMainWindow, содержащий несколько QDialog, которые открываются с помощью exec () и, следовательно, являются модальными (что является желаемым поведением).

Теперь, когда у пользователя открыт один из этих диалоговых окон, он выбирает взаимодействие с какой-либо внешней программой (например, веб-браузером), которая перекрывает диалог, но не MainWindow, а затем пытается вернуться в нашу программу, он не может этого сделать, щелкнув видимая область главного окна из-за модального диалога. Чтобы вернуться, ему необходимо переместить / свернуть другие окна, препятствующие просмотру QDialog или активирующие его с помощью панели задач. Это может произвести впечатление зависшей программы (особенно если прошло какое-то время, а пользователь не знает об открытом диалоге).

Я перегружаю различные события фокуса / мыши в главном окне / диалоговых окнах, чтобы поднять () QDialog в таком случае, но я не смог найти, что он активируется при щелчке по главному окну при отображении диалогового окна. Кто-нибудь знает решение для этого? Я полагаю, это что-то легкое, что я, должно быть, упустил из виду.


person Bowdzone    schedule 13.08.2014    source источник


Ответы (1)


Убедитесь, что QDialogs получает правильный родительский элемент (главное окно) в конструкторе. Это должно решить проблему.

person choosyg    schedule 13.08.2014
comment
Я знал, что это что-то простое. Большое тебе спасибо! - person Bowdzone; 13.08.2014