MyTetra Share
Делитесь знаниями!
Qt: абсолютные экранные координаты виджета и их преобразование
Время создания: 27.06.2016 20:23
Раздел: Компьютер - Программирование - Язык C++ (Си++) - Библиотека Qt - Принципы написания кода
Запись: xintrea/mytetra_syncro/master/base/1415565543a6gsl6yznt/text.html на raw.github.com

В Qt множество событий генерируют абсолютные экранные координаты. Например, при обработке жестов можно получить только экранные координаты.


Как быстро перевести эти координаты в координаты относительно виджета, по которому был сделан клик или жест?


Можно воспользоваться методом mapFromGlobal() класса QWidget (от которого наследованы практически все экранные элементы)



// Абсолютные (т. е. экранные) координаты жеста TapAndHoldGesture

QPoint touchPos=gesture->position().toPoint();


// Координаты в виджете, где было сделано длительное нажатие

QPoint widgetPos=mapFromGlobal(touchPos)


emit tapAndHoldGestureFinished( widgetPos );



Так же в Qt есть и обратное преобразование из координат виджета в абсолютные экранные координаты:


mapToGlobal().



Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования