2015-09-11 17 views
5

マルチタッチをサポートするQtウィジェットアプリケーションを作成しようとしています。 Ubuntu 14.04、QtCreator 3.5.0、Qt 5.5.0をインストールしたタブレットを使用しています。私はタブレットでまっすぐコンパイルしています。Qt 5.5 - Ubuntuで動作しないタッチ/マルチタッチ14.04

this,thisthis oneのようなQt QuickとQt Widgetsのサンプルをコンパイルしようとしました。それらのすべてがうまくコンパイルされ、すべてがマウスとシングルタッチのイベントをサポートしていましたが、マルチタッチはサポートされていませんでした。

私はこのような例の最後のソースコードを変更しようとした:

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; 
} 

そして、私はアイテムをドラッグ触れるしようとすると、私が得るすべての出力は、マウスイベントの一種です:

QEventMouseButtonPress 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseMove 
QEventMouseButtonRelease 
QEventLeave 

他のアプリケーション(Google ChromeやUbuntu自体のような)はマルチタッチの問題を処理するので、Qtと何か関係があると思います。現在インストールされているバージョンについて

XInputの状態、これを:

xinput version 1.6.1 
XI version on server: 2.3 

私は、一般的にはQtとUbuntuに比較的新しいですので、問題は実際にはかなり簡単かもしれないが、私は結果を与えなかったグーグル。あなたの助けを前もってありがとう。

UPDATE

私はそれはOSのバグであるか持っているかどうかを把握することができるように誰かがUbuntuのか、他のLinuxベースのディストリビューション上のQtとの接触を使用しての経験を共有する場合にも、私は感謝しますハードウェアと関係があります。

+0

どのようなジェスチャーを使用していますか? AFAIK、ピンチリサイズはUbuntuではサポートされていませんが、間違っている可能性があります – marmistrz

+0

@marmistrzピンチと回転を試みました。私はピンチが実際にはGoogle Chromeで動作することも知っています。 – bashis

+0

私はFedora 19のマルチタッチスクリーンとqtクイックベースアプリケーションの経験がありました。私は問題や構成はありませんでした。しかし、特別なマルチタッチイベントは扱われませんでした。 – Milovidov

答えて

0

単一ウィジェットでマルチタッチを実装するには、QEventMouseButtonPressなどのイベントではなく、別のイベントが必要です。 TouchBegin、TouchUpdate、TouchEnd、新しいTouchEventsClassなどの新しいイベントタイプがあります。

理解を深めてください。http://www.slideshare.net/qtbynokia/using-multitouch-and-gestures-with-qt

関連する問題