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

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

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

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

2

Решение

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

4

Другие решения


По вопросам рекламы [email protected]