crossplatform.ru

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

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


Студент
*

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

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




Репутация:   0  


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


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(Litkevich Yuriy @ 20.4.2010, 11:03) *
Т.е. leaveEvent(QEvent*) уже отработал, но это ни к чему не должно приводить

я это и имел ввиду.
в leaveEvent(QEvent*) устанавливать флаг - мышь за пределами виджета
в enterEvent(QEvent*) сбрасывать.
grabMouse() передаст щелчки мыши в желаемый виджет,
в обработчиках щелчков мы будем проверять флаг и в соответсвии со значением действовать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


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