Russian Qt Forum

Qt => Общие вопросы => Тема начата: Кусай от Октябрь 06, 2010, 15:33



Название: Как получить координаты курсора в произвольный момент?
Отправлено: Кусай от Октябрь 06, 2010, 15:33
Знаю, что есть возможность получить координаты через mouseMoveEvent, но это работает, только если одна из клавиш нажата (может быть, не обязательно, но у меня событие срабатывает только при нажатых) и мышь двигалась хотя бы на пиксель.
А есть возможность получить координаты курсора глобально в любой момент, примерно как в winapi функцией getcursorpos, но средствами Qt? Мышь находится над формой.


Название: Re: Как получить координаты курсора в произвольный момент?
Отправлено: crossly от Октябрь 06, 2010, 15:45
QCursor??


Название: Re: Как получить координаты курсора в произвольный момент?
Отправлено: Авварон от Октябрь 06, 2010, 16:00
http://doc.qt.nokia.com/4.7/qwidget.html#mouseTracking-prop


Название: Re: Как получить координаты курсора в произвольный момент?
Отправлено: Denjs от Октябрь 06, 2010, 16:03
Цитировать
координаты курсора глобально
QPoint QCursor::pos ()   [static]

Координаты относительно любого виджета можно пересчитать из глобальных влокальные и наоборот - только на вскидку не помню где это делается. чуть попозже найду.

а mouseTracking-prop начнет генерировать события перемещения курсора и отсылать их виджету. Разбор события типа QMouseEvent - своя песня (но не плохая))))



Название: Re: Как получить координаты курсора в произвольный момент?
Отправлено: Vanoor от Октябрь 06, 2010, 21:52
Событие mouseEvent не высылается в обычной ситуации (без нажатой кнопки мыши), что бы не перегружать методы обработки без надобности, что бы событие высылалось без нажатия попробуйте в своем основном виджете поставить setMouseTracking ( bool enable ), координаты получаются просто вам уже отписались как.


Название: Re: Как получить координаты курсора в произвольный момент?
Отправлено: Кусай от Октябрь 07, 2010, 20:21
Всем спасибо)) Работает.