Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: azin от Октябрь 11, 2012, 16:00



Название: Установка, потеря фокуса
Отправлено: azin от Октябрь 11, 2012, 16:00
Добрый день всем!
Есть процесс MainWindow, который в основном работает в фоновом режиме со скрытым окном.
Иногда он должен показать свое окно поверх всех открытых окон. Метод show может подсунуть его
под активное окно. SetFocus не помогает. Пытался сделать окно вторичным  и открывать как модальное,
тоже не помогает, оно модальное внутри процесса а не на рабочем столе. И еще, при потере фокуса
окно должно исчезать, QEvent::FocusOut тоже не работает.
Заранее благодарю.


Название: Re: Установка, потеря фокуса
Отправлено: mutineer от Октябрь 11, 2012, 16:05
Поверх всех окон может помочь флаг Qt::WindowStaysOnTopHint


Название: Re: Установка, потеря фокуса
Отправлено: navrocky от Октябрь 11, 2012, 16:54
1) Можно попробовать еще сделать QWidget::raise.

2) При уходе фокуса с окна, окно получает QEvent::WindowDeactivate.

Инфа к сведению: под виндой перехват фокуса может быть запрещен на уровне системы.


Название: Re: Установка, потеря фокуса
Отправлено: GreatSnake от Октябрь 11, 2012, 17:18
См. решение здесь (http://www.prog.org.ru/index.php?topic=23120.msg163281#msg163281).


Название: Re: Установка, потеря фокуса
Отправлено: azin от Октябрь 12, 2012, 08:33
Всем спасибо!
Все хорошо.