Введение в разработку приложений на платформе Atom/MeeGo для нетбуков и планшетников. Граничин О.Н - 135 стр.

UptoLike

135
Тем не менее, отметим два момента. Во-первых, в случае
успешного распознавания метод возвращает FinishGesture, если
событие не имеет к методу отношения, он возвращает Ignore. Также
есть и другие возвращаемые значения, они описаны в
документации. Во-вторых, gesture необходимо установить HotSpot,
чтобы система могла отправить ее соответствующему виджету, и
он, в свою очередь, смог ее обработать. В более сложных случаях
также переопределяются методы create() и reset().
Регистрация нового распознавателя осуществляется
статическим методом QGestureRecognizer::registerRecognizer,
который возвращает идентификатор типа новой gesture. C помощью
флага Qt::CustomGesture можно определить, самодельный это тип
или встроенный.
Затем этот идентификатор следует использовать в обработчике,
чтобы выделить события, относящиеся именно к этой gesture
стественно, специализированные обработчики уже нельзя
использовать).
void MyGestPage::gestureEvent(QGestureEvent *event) {
QGesture *gest = event->gesture(myGestType);
if (gest) {
setTitle(QString("Got %1").arg(myGestType));
return;
}
MApplicationPage::gestureEvent(event);
}
В данном обработчике у события запрашивается gesture
желаемого типа, и если он естьвыполняется какое-то действие. В
противном случае вызывается метод базового класса для обработки
других gesture.
Если gesture перестал быть актуальным, от него можно
избавиться методом unregisterRecognizer().