![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
fancer.lancer |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 5 Регистрация: 23.3.2010 Пользователь №: 1555 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте форумчане, при написании Гуя на QT4 столкнулся с проблемой. Мне необходимо передать в обработчик одного из пункова контекстного меню координаты, которые соответствуют точке, откуда это меню было вызвано. Есть ли какой-либо метод (функция) или какой-либо способ сделать это без особенных извратов, таких как хранить где-нибудь коориднаты нажатия из QContextMenuEvent?
Просмотрел уже весь assistant, прочитал много примеров, но так ничего похожего не нашел. |
|
|
![]() |
MoPDoBoPoT |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
Можно просто посмотреть координаты мыши в обработчике (они будут глобальными) Не получится, так как: Мне необходимо передать в обработчик одного из пункова контекстного меню координаты, которые соответствуют точке, откуда это меню было вызвано То есть, когда мы выбираем один из пунктов меню, мы уже двигаем мышь (если конечно навигация по меню не ограничена только стрелками ![]() Есть ли какой-либо метод (функция) или какой-либо способ сделать это без особенных извратов, таких как хранить где-нибудь коориднаты нажатия из QContextMenuEvent? Можно в обработчике (слоте) получить указатель на сендера, и если это QAction *, то из него получить указатель на QMenu, из которого вытянуть координаты нажатия, которые были переданы QMenu через функцию exec(). Да, это без особых извратов, а вот хранить точку вызова меню - изврат ![]() Кстати, для этого метода есть еще нюанс. Реальная точка вызова контекстного меню не всегда равна его верхней точке (попробуй его вызвать, например, в правом нижнем углу экрана). То есть надо будет учитывать размер самого меню и расстояние от его левой верхней точки до правого и нижного краев экрана. Делай вывод, какой из методов менее извратный. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 5:10 |