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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: eventFilter за пределами окна с флагом Qt::Popup.  (Прочитано 4263 раз)
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« : Февраль 01, 2012, 06:35 »

Здравствуйте! Такой вопрос: есть некая форма, с произвольными виджетами, скомпонованными с помощью лейаутов, внизу этой формы блок кнопок:



Задача: вверху этих кнопок поверх существующих виджетов, без изменения их геометрии, нарисовать еще один блок кнопок. На вскидку задача решается с помощью вывода еще одного окна в нужную нам область экрана, с установленным флагом Qt::Popup, но одна беда: при выводе этого попапа все остальные виджеты, включая нижний ряд кнопок, что критично, перестают получать события от мыши, такие как QEvent::HoverEnter и QEvent::HoverLeave, до того момента, пока попап не закрыт. В какую сторону копать, что бы разрешить нижним кнопкам реагировать на мышиные события до закрытия окна с попапом? Ведь в QtCreator'е как то это реализовано, при выводе попапа нужные ему кнопки подсвечиваются?

Пытался там подсмотреть, но из тех мегабайтов кода нужный кусок не удалось вычленить Грустный
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Bepec
Гость
« Ответ #1 : Февраль 01, 2012, 08:21 »

А помоему вы фигней страдаете Подмигивающий

Насколько я понимаю, ваш рисунок с Creator'a это обычный modelView, а вовсе не "виджеты нарисованные поверх виджетов".

PS ответ на вопрос темы(пусть и какой то странноватый): Просто выводи ещё 1 виджет,  и давай ему родителя того, на ком рисовать будешь.
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #2 : Февраль 01, 2012, 16:24 »

А помоему вы фигней страдаете Подмигивающий
Вполне возможно Улыбающийся
Насколько я понимаю, ваш рисунок с Creator'a это обычный modelView, а вовсе не "виджеты нарисованные поверх виджетов".
правое окно, где комбобоксы - как раз окно, созданное с флагом Qt::Popup, выводиться поверх QListView, и при этом кнопочки "run", "debug" и "build" получают события от мыши.
- на этой картинке вроде чуть более понятно Улыбающийся
PS ответ на вопрос темы(пусть и какой то странноватый): Просто выводи ещё 1 виджет,  и давай ему родителя того, на ком рисовать будешь.
Примерно так и планирую сделать, если вопрос с Qt::Popup не решиться Улыбающийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Bepec
Гость
« Ответ #3 : Февраль 01, 2012, 18:05 »

А вы не пробовали создать виджет, с родителем QMainWindow(вашим основным окном?).

Насколько я помню, в моей одной программе, реализован такой "блуждающий виджет поверх всех", при этом не относящийся ни к одному компоновщику Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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