Russian Qt Forum
Сентябрь 30, 2024, 06:23 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Как перехватить потерю\появление фокуса в QMdiSubWindow?  (Прочитано 3534 раз)
NOX86
Гость
« : Март 07, 2010, 05:30 »

Есть класс Document, отнаследованый от QMdiSubWindow, который совершает некоторые действия при появлении\потере фокуса. Класс Document наследуется инными класами так же, причём они устанавливают виджет(ы) для QMdiSubWindow;
 То есть: (Потомки) <- Document <- QMdiSubWindow
 Хотелось бы весь функционал относящийся к появлению\потере фокуса реализовать в классе Document
Проблема состоит в том, что
1. QMdiSubWindow в режиме табов не посылает событий изменений фокуса (QFocusEvent).
2. Я точно не знаю какой будет верхний виджет после последнего наследования.

 Как перехватить потерю\появление фокуса, преключения между табами\окнами в QMdiSubWindow?
 Хочу обратить внимание, что мне надо отлавливать как появление так и _потерю_ фокуса.
« Последнее редактирование: Март 16, 2010, 20:48 от NOX86 » Записан
NOX86
Гость
« Ответ #1 : Март 16, 2010, 20:48 »

В моём случае помогло отлавливание состояния окна
А именно Qt::WindowNoState и Qt::WindowActive
Сделать это можно при помощи сигнала windowStateChanged(Qt::WindowStates,Qt::WindowStates)
или отлавливая QWindowStateChangeEvent событие
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 20.