crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

ars
  опции профиля:
сообщение 19.4.2010, 20:35
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 10
Регистрация: 16.2.2010
Пользователь №: 1467

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день! Пишу собственный виджет. Не пойму как обработать событие клика не на этом виджете. Условно говоря, мой виджет встраивается в панель в главном окне приложения, при клике НЕ на нем, то есть на любой другой области внутри этого главного окна или даже вне этого главного окна, должно производиться некоторое действие. В качестве примера подобного функционала можно привести закрытие в ComboBox'е списка при клике на любую часть экрана. Пробовал ставить фильтр события на все родительские окна, во первых очень коряво получается, а во вторых, при этом не получается обрабатывать клик на неродительские окна (соседние в дереве окон). Кто-нибудь знает как можно это реализовать?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 20.4.2010, 7:09
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Если хочется получать все события от мышки, даже когда она за пределами виджета, то посмотри на:
void QWidget::grabMouse ()

Так же советую посмотреть как подобный функционал реализован в Qt, например, как это сделано у QToolTip или QComboBox.


Сообщение отредактировал BRE - 20.4.2010, 7:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 15.6.2025, 8:56