Qt Swipe Gesture funktioniert nicht

Alles rund um die Programmierung mit Qt
Antworten
Rija
Beiträge: 1
Registriert: 15. Januar 2016 09:26

Qt Swipe Gesture funktioniert nicht

Beitrag von Rija »

Hallo zusammen,

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!
Antworten