2015-09-11 18 views
5

Ich versuche, eine Qt Widgets-Anwendung zu erstellen, die Multitouch unterstützt. Ich verwende ein Tablet mit Ubuntu 14.04, QtCreator 3.5.0 und Qt 5.5.0. Ich kompiliere direkt auf dem Tablet.Qt 5.5 - Touch/Multitouch funktioniert nicht mit Ubuntu 14.04

Ich habe versucht, einige der Qt Quick und Qt Widgets Beispiele wie this, this und this one zu kompilieren. Alle wurden gut kompiliert und alle unterstützten Maus- und Singletouch-Ereignisse, aber keine Multitouch-Unterstützung.

Ich habe versucht, den Quellcode des letzten der Beispiele wie folgt ändern:

bool ImageWidget::event(QEvent *event) 
{ 
    std::cout << GetEvent(event).toStdString() << std::endl; 
    if (event->type() == QEvent::Gesture) 
     return gestureEvent(static_cast<QGestureEvent*>(event)); 
    return QWidget::event(event); 
} 

QString ImageWidget::GetEvent(const QEvent * ev) { 
    static int eventEnumIndex = QEvent::staticMetaObject 
     .indexOfEnumerator("Type"); 
    QString result; 
    result.append("QEvent"); 
    if (ev) { 
     QString name = QEvent::staticMetaObject 
      .enumerator(eventEnumIndex).valueToKey(ev->type()); 
     if (!name.isEmpty()) result.append(name); else result.append(ev->type()); 
    } else { 
     result.append("foo"); 
    } 
    return result; 
} 

Und die Ausgabe ich, wenn ich versuchen, ziehen Sie ein Element zu berühren, sind eine Art von Maus-Ereignisse:

QEventMouseButtonPress 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseButtonRelease 
QEventLeave 

Andere Anwendungen (wie Google Chrome oder Ubuntu selbst) behandeln Multitouch gut, also denke ich, dass es etwas mit Qt zu tun hat.

XInput Staaten diese über die aktuell installierten Versionen:

xinput version 1.6.1 
XI version on server: 2.3 

Ich bin relativ neu in Qt und Ubuntu im Allgemeinen, so dass das Problem könnte eigentlich ziemlich einfach sein, aber googeln gab mir keine Ergebnisse. Danke im Vorraus für deine Hilfe.

UPDATE

Auch ich schätzen würde, wenn jemand die Erfahrung mit Touch mit Qt auf Ubuntu oder anderen Linux-basierte Distributionen geteilt, so dass ich heraus könnte, ob es ein Fehler in OS ist oder etwas mit Hardware zu tun.

+0

Welche Geste verwenden Sie? AFAIK, Pinch Resize wird nicht in Ubuntu unterstützt, aber ich kann falsch liegen – marmistrz

+0

@marmistrz Ich versuchte Pinch und drehen. Ich weiß auch, Pinch funktioniert zum Beispiel in Google Chrome. – bashis

+0

Ich hatte Erfahrung mit Multitouch-Bildschirmen und qt schnelle Anwendung auf Fedora 19. Ich hatte keine Probleme und Konfigurationen, alles funktioniert von Box. Aber ich wurde nicht mit speziellen Multitouch-Events behandelt. – Milovidov

Antwort