Название: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 15:54 Всем привет.
Есть графическая сцена, на ней размещаются графические объекты типа QGraphicsTextItem в этих объектах я переопределил два метода: hoverLeaveEvent и hoveEnterEvent, в каждом из этих методов я испускаю сигналы соответствующие событию. Эти сигналы я ловлю на главной форме где расположена сцена. Мне это нужно для интерактивной карты, когда я навожу курсор на одну из областей должен появиться виджет с данными об этой области. И вот когда навожу курсор появляется виджет мой и тут же пропадает потом сразу же появляется и пропадает. Я понимаю это из за того что при появлении виджета фокус передается на него и на графическом объекте срабатывает событие Leave потом опять ловиться Enter и опять показывается виджет и происходит всё по кругу. Помоги советом, как этого избежать? Буду очень благодарен!!! Название: Re: Проблемы с передачей фокуса Отправлено: GreatSnake от Август 10, 2011, 18:46 Повесь на всплывающий виджет grabMouse(). После того как будешь убирать этот виджет граб сними через releaseMouse().
Название: Re: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 18:48 А можно поподробнее, что это даст?
Название: Re: Проблемы с передачей фокуса Отправлено: GreatSnake от Август 10, 2011, 18:59 А можно поподробнее, что это даст? Цитата: 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. Название: Re: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 19:01 Спасибо, но я это читал уже, к данной задаче не подходит к сожалению. Это должно работать на подобии простой подсказки - tooltip, Только вместо тултипа должен выскакивать мой виджет, где можно прочитать список и понажимать на кнопочки
Название: Re: Проблемы с передачей фокуса Отправлено: GreatSnake от Август 10, 2011, 19:03 Спасибо, но я это читал уже, к данной задаче не подходит к сожалению. Ну-ну, читай дальше.PS. А коли лень читать, могу посоветовать в качестве top-level окна твоего виджета использовать QMenu) Название: Re: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 19:06 А можно вместо стандартного тултипа подсунуть свой?
Название: Re: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 19:09 Получается при наведении курсора на мою "ссылку" нужно будет вызвать грабмаус для виджета? что дальше?
Название: Re: Проблемы с передачей фокуса Отправлено: GreatSnake от Август 10, 2011, 19:10 Получается при наведении курсора на мою "ссылку" нужно будет вызвать грабмаус для виджета? что дальше? PS. А коли лень читать, могу посоветовать в качестве top-level окна твоего виджета использовать QMenu) Название: Re: Проблемы с передачей фокуса Отправлено: merke от Август 10, 2011, 19:15 аха после вызова грабмаус мой виджет покажется и я смогу на нем покликать, а вот теперь как спрятать его опять? неохота на виджете делать кнопочку скрыть(
Название: Re: Проблемы с передачей фокуса Отправлено: ритт от Август 11, 2011, 10:16 QGraphicsWidget(parent, Qt::Popup)
Название: Re: Проблемы с передачей фокуса Отправлено: GreatSnake от Август 11, 2011, 10:30 QGraphicsWidget(parent, Qt::Popup) И для чего это ???Мало того что это будет тормоз так ещё и как истинный типс не будет себя вести, т.к. будет ограничен рамками вьюпорта. аха после вызова грабмаус мой виджет покажется и я смогу на нем покликать, а вот теперь как спрятать его опять? неохота на виджете делать кнопочку скрыть( ещё раз повторюсь - размещай все свои контролы на QMenu и ни с какими грабами не придётся связываться, т.к. всё уже сделано в QMenu.При нажатии на Esc или нажатии кнопкой мыши за границами окна твой типс пропадёт точно также как ведёт себя попап меню. |