Составители:
Рубрика:
78
Для сенсорного экрана выделены следующие типы событий:
QEvent::TouchBegin (начало прикосновения),
QEvent::TouchUpdate (продолжение прикосновения),
QEvent::TouchEnd (завершение прикосновения). Класс
QTouchEvent появился недавно, в Qt 4.6, для поддержки
сенсорных экранов и сенсорных площадок (touchpad). Вложенный
класс QTouchEvent::TouchPoint описывает точку прикосновения к
сенсорному экрану. В QTouchEvent имеется список таких точек –
например, если пользователь касается экрана четырьмя пальцами,
то в списке будут четыре точки. В простейшем случае достаточно
рассматривать первую точку списка. Кроме координат, с каждой
точкой ассоциировано ее состояние, для простейшего анализа оно
также не важно.
Таким образом, можно выстроить несколько стратегий обработки
событий сенсорного экрана. В простейшем случае (клик)
достаточно реагировать только на TouchBegin или TouchEnd, в
более сложных случаях необходимо анализировать данные в
TouchUpdate на лету или накапливать их для последующего
анализа при завершении прикосновения.
По умолчанию виджет не получает события от сенсорного
экрана. Чтобы начать их получать, необходимо выполнить вызов
setAcceptTouchEvents(true). Другая проблема, которая может
возникнуть с сенсорным экраном – обработка событий gesture
других виджетов может приводить к нежелательным эффектам. В
этом случае необходимо также начать получать события желаемых
gestures в своем виджете, выполнив, например,
grabGesture(Qt::PanGesture), после чего в обработчике событий
отмечать эти события как обработанные. Другие виджеты
перестанут получать события и нежелательные эффекты
прекратятся.
Страницы
- « первая
- ‹ предыдущая
- …
- 76
- 77
- 78
- 79
- 80
- …
- следующая ›
- последняя »
