Russian Qt Forum
Ноябрь 25, 2024, 14:27
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Проблемы с передачей фокуса
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проблемы с передачей фокуса (Прочитано 5033 раз)
merke
Гость
Проблемы с передачей фокуса
«
:
Август 10, 2011, 15:54 »
Всем привет.
Есть графическая сцена, на ней размещаются графические объекты типа QGraphicsTextItem в этих объектах я переопределил два метода: hoverLeaveEvent и hoveEnterEvent, в каждом из этих методов я испускаю сигналы соответствующие событию. Эти сигналы я ловлю на главной форме где расположена сцена. Мне это нужно для интерактивной карты, когда я навожу курсор на одну из областей должен появиться виджет с данными об этой области. И вот когда навожу курсор появляется виджет мой и тут же пропадает потом сразу же появляется и пропадает. Я понимаю это из за того что при появлении виджета фокус передается на него и на графическом объекте срабатывает событие Leave потом опять ловиться Enter и опять показывается виджет и происходит всё по кругу.
Помоги советом, как этого избежать?
Буду очень благодарен!!!
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблемы с передачей фокуса
«
Ответ #1 :
Август 10, 2011, 18:46 »
Повесь на всплывающий виджет grabMouse(). После того как будешь убирать этот виджет граб сними через releaseMouse().
Записан
Qt 5.11/4.8.7 (X11/Win)
merke
Гость
Re: Проблемы с передачей фокуса
«
Ответ #2 :
Август 10, 2011, 18:48 »
А можно поподробнее, что это даст?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблемы с передачей фокуса
«
Ответ #3 :
Август 10, 2011, 18:59 »
Цитата: Александр от Август 10, 2011, 18:48
А можно поподробнее, что это даст?
Цитата: assistant
void QWidget::grabMouse ()
Grabs the mouse input.
This widget receives all mouse events until releaseMouse() is called; other widgets get no mouse events at all.
Записан
Qt 5.11/4.8.7 (X11/Win)
merke
Гость
Re: Проблемы с передачей фокуса
«
Ответ #4 :
Август 10, 2011, 19:01 »
Спасибо, но я это читал уже, к данной задаче не подходит к сожалению. Это должно работать на подобии простой подсказки - tooltip, Только вместо тултипа должен выскакивать мой виджет, где можно прочитать список и понажимать на кнопочки
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблемы с передачей фокуса
«
Ответ #5 :
Август 10, 2011, 19:03 »
Цитата: Александр от Август 10, 2011, 19:01
Спасибо, но я это читал уже, к данной задаче не подходит к сожалению.
Ну-ну, читай дальше.
PS. А коли лень читать, могу посоветовать в качестве top-level окна твоего виджета использовать QMenu)
«
Последнее редактирование: Август 10, 2011, 19:06 от GreatSnake
»
Записан
Qt 5.11/4.8.7 (X11/Win)
merke
Гость
Re: Проблемы с передачей фокуса
«
Ответ #6 :
Август 10, 2011, 19:06 »
А можно вместо стандартного тултипа подсунуть свой?
Записан
merke
Гость
Re: Проблемы с передачей фокуса
«
Ответ #7 :
Август 10, 2011, 19:09 »
Получается при наведении курсора на мою "ссылку" нужно будет вызвать грабмаус для виджета? что дальше?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблемы с передачей фокуса
«
Ответ #8 :
Август 10, 2011, 19:10 »
Цитата: Александр от Август 10, 2011, 19:09
Получается при наведении курсора на мою "ссылку" нужно будет вызвать грабмаус для виджета? что дальше?
Цитата: GreatSnake от Август 10, 2011, 19:03
PS. А коли лень читать, могу посоветовать в качестве top-level окна твоего виджета использовать QMenu)
Записан
Qt 5.11/4.8.7 (X11/Win)
merke
Гость
Re: Проблемы с передачей фокуса
«
Ответ #9 :
Август 10, 2011, 19:15 »
аха после вызова грабмаус мой виджет покажется и я смогу на нем покликать, а вот теперь как спрятать его опять? неохота на виджете делать кнопочку скрыть(
Записан
ритт
Гость
Re: Проблемы с передачей фокуса
«
Ответ #10 :
Август 11, 2011, 10:16 »
QGraphicsWidget(parent, Qt::Popup)
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблемы с передачей фокуса
«
Ответ #11 :
Август 11, 2011, 10:30 »
Цитата: Константин от Август 11, 2011, 10:16
QGraphicsWidget(parent, Qt::Popup)
И для чего это
Мало того что это будет тормоз так ещё и как истинный типс не будет себя вести, т.к. будет ограничен рамками вьюпорта.
Цитата: Александр от Август 10, 2011, 19:15
аха после вызова грабмаус мой виджет покажется и я смогу на нем покликать, а вот теперь как спрятать его опять? неохота на виджете делать кнопочку скрыть(
ещё раз повторюсь - размещай все свои контролы на QMenu и ни с какими грабами не придётся связываться, т.к. всё уже сделано в QMenu.
При нажатии на Esc или нажатии кнопкой мыши за границами окна твой типс пропадёт точно также как ведёт себя попап меню.
Записан
Qt 5.11/4.8.7 (X11/Win)
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...