2つの質問があります:
- Linuxでタッチイベントをシミュレートする方法。
- LinuxのQtでマルチタッチを操作する方法。
マルチタッチの質問については、Qtが追加したGesturesAPIを確認したいと思うかもしれません。
直接呼び出すことで、タッチイベントをシミュレートできますqt_translateRawTouchEvent
。(このメソッドは文書化されていませんが、そこにqapplication.cpp
あり、エクスポートされています)。
これをファイルの先頭に配置します。
// forward-declaration of Qt internal function
Q_GUI_EXPORT void qt_translateRawTouchEvent(QWidget *window,
QTouchEvent::DeviceType deviceType,
const QList<QTouchEvent::TouchPoint> &touchPoints);
関数呼び出しの構文は次のとおりです。
qt_translateRawTouchEvent(targetWidget, deviceType, points.values());
あなたの場合、ユーザーが現在触れているポイントのリストは(NULL, QTouchEvent::TouchScreen, touchPoints)
どこにあるかを指定して、このメソッドを呼び出します。touchPoints
これは少なくともQt4.7と4.8で機能するはずですが、おそらく以前はQt 5で機能していましたが、私はそれを確認しませんでした。