woodtluk
28th September 2010, 16:29
I'v a custom Widget class and try to scroll with a gesture:
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent) {
grabGesture(Qt::SwipeGesture);
}
bool MyWidget::event ( QEvent * event ) {
if (event->type() == QEvent::Gesture)
return gestureEvent(static_cast<QGestureEvent*>(event));
return QWidget::event(event);
}
bool MyWidget::gestureEvent ( QGestureEvent * event ) {
if (QGesture *swipe = event->gesture(Qt::SwipeGesture)) {
QSwipeGesture * swipeGesture = static_cast<QSwipeGesture *>(swipe);
int scrollFactor = 10;
if(swipeGesture->verticalDirection() == QSwipeGesture::Down)
scrollFactor = -scrollFactor;
if(swipeGesture->state() == Qt::GestureUpdated)
scroll(0, scrollFactor);
}
return true;
}
But I never get a gesture event.
Tried on Windows and on Symbian.
What's gonig on?
Thx!!!
MyWidget::MyWidget(QWidget *parent) :
QWidget(parent) {
grabGesture(Qt::SwipeGesture);
}
bool MyWidget::event ( QEvent * event ) {
if (event->type() == QEvent::Gesture)
return gestureEvent(static_cast<QGestureEvent*>(event));
return QWidget::event(event);
}
bool MyWidget::gestureEvent ( QGestureEvent * event ) {
if (QGesture *swipe = event->gesture(Qt::SwipeGesture)) {
QSwipeGesture * swipeGesture = static_cast<QSwipeGesture *>(swipe);
int scrollFactor = 10;
if(swipeGesture->verticalDirection() == QSwipeGesture::Down)
scrollFactor = -scrollFactor;
if(swipeGesture->state() == Qt::GestureUpdated)
scroll(0, scrollFactor);
}
return true;
}
But I never get a gesture event.
Tried on Windows and on Symbian.
What's gonig on?
Thx!!!