Составители:
Рубрика:
133
можно использовать в MeeGoTouch. Не исключены ситуации, когда
одно и то же движение пользователя воспринимается системой как
несколько gestures одновременно. Некоторые виджеты MeeGoTouch
имеют встроенную поддержку отдельных gestures, например,
подклассы MPannableWidget или виджеты с контекстным меню.
Обрабатывать gestures можно как для отдельного виджета, так и
для контейнера, такого, например, как страница приложения. Хотя
для встроенных gestures выделены специальные обработчики,
соответствующие события можно также перехватывать внутри
event(QEvent *event) или gestureEvent(QGestureEvent *event). Проще
всего, однако, просто переопределить обработчики для встроенных
gestures.
Чтобы разрешить виджету получать информацию о gestures,
необходимо вызвать для него метод grabGesture(Qt::SwipeGesture),
указав желаемый тип. Для PinchGesture делается исключение –
поскольку она использует возможности мультисенсорного экрана,
ее обработка несколько сложнее и для нее также необходимо
вызвать setAcceptTouchEvents(true). Это особенность реализации
gestures в Qt.
Простейший пример обработчика встроенной gesture:
void MyGestPage::swipeGestureEvent(QGestureEvent
*event,
QSwipeGesture
*gesture) {
if (gesture->horizontalDirection() ==
QSwipeGesture::Left) {
if (id > 0)
((MyApp*)qApp)->switchPage(id-1);
} else if (gesture->horizontalDirection() ==
QSwipeGesture::Right) {
if (id < 2)
((MyApp*)qApp)->switchPage(id+1);
}
}
Обратите внимание на избыточность параметров. Для
получения необходимой информации достаточно и QEvent, который
Страницы
- « первая
- ‹ предыдущая
- …
- 131
- 132
- 133
- 134
- 135
- …
- следующая ›
- последняя »