ich versuche Swipe Gestures in meinem Widget einzubauen, allerdings funktioniert dies nicht. Ich arbeite mit Qt 4.8 in Linux mit einem Multi-Touch-Screen.
Dabei bin ich den Beispielen und den Dokumentationen gefolgt, die Qt bereitstellt.
Hier ist ein Teil meines Codes:
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
grabGesture(Qt::SwipeGesture);
}
bool MainWindow::event(QEvent *event){
if (event->type() == QEvent::Gesture)
return gestureEvent(static_cast<QGestureEvent*>(event));
return QWidget::event(event);
}
bool MainWindow::gestureEvent(QGestureEvent *event){
if (QGesture *swipe = event->gesture(Qt::SwipeGesture))
swipeTriggered(static_cast<QSwipeGesture *>(swipe));
return true;
}
void MainWindow::swipeTriggered(QSwipeGesture *gesture){
if (gesture->state() == Qt::GestureFinished){
if (gesture->verticalDirection() == QSwipeGesture::Up)
goButtomLabel();
if (gesture->verticalDirection() == QSwipeGesture::Down)
goUpperLabel();
update();
}
}
void MainWindow::goButtomLabel(){
// does something here
}
void MainWindow::goUpperLabel(){
// does something here
}Ist an diesem Code etwas falsch? Oder habe ich etwas vergessen? Habt ihr Vorschläge?
Ich bin ein Qt-Neuling und auch ein C++-Anfänger, deshalb würde ich mich sehr über eure Hilfe freuen.
Vielen Dank schon einmal!