crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
RazrFalcon
  опции профиля:
сообщение 23.2.2012, 9:44
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Есть класс наследник QWidget. При наведении на него выскакивает кастомный тултип.
Так вот, этот тултип должен исчезать при потери фокуса приложением.
Но, передавать сигнал аж из MainWindow до этого класса слишком накладно (3-и уровня "вложенности").
А есть принудительно ставить фокус на этот виджет и отлавливать QFocusOutEvent, то тогда фокус/тултип пропадает при любых действия с прогой (клик мышкой, вращение колесика, Tab).

То есть нужно отловить потерю фокуса всем приложением и передать этот "сигнал" в нужный виджет. Как то так...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.2.2012, 8:39
Сообщение #2


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

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


что-нибудь вроде проверки по таймеру или в onidle - активно ли приложение ? Если активно - показать виджет (если скрыт). Если неактивно - скрыть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ufna
  опции профиля:
сообщение 24.2.2012, 12:28
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

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




Репутация:   5  


Цитата(RazrFalcon @ 23.2.2012, 10:44) *
..
Но, передавать сигнал аж из MainWindow до этого класса слишком накладно (3-и уровня "вложенности").
..


Самый простой вариант - пусть в MainWindow будет "массив тултипов", при открытии закидывай туда указатель на этот тултип. При потере фокуса приложением - говори ему "сезам, закройся".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 24.2.2012, 20:53
Сообщение #4


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

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

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




Репутация:   44  


Цитата(RazrFalcon @ 23.2.2012, 10:44) *
То есть нужно отловить потерю фокуса всем приложением и передать этот "сигнал" в нужный виджет. Как то так...

Так а почему не посмотреть как сделан QToolTip?

Установи eventFilter на объект QApplication, отлавливай нужные события и "туши" свой тултип. Это все можно делать прямо у себя в тултипе.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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