Linux中的多点触控

Ale*_*net 6 c++ linux qt multi-touch

我有两个问题:

  1. 如何在linux中模拟触摸事件.
  2. 如何在Linux上的Qt上使用多点触控.

Dav*_*ure 3

直接调用就可以模拟触摸事件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);
Run Code Online (Sandbox Code Playgroud)

函数调用语法为:

qt_translateRawTouchEvent(targetWidget, deviceType, points.values());
Run Code Online (Sandbox Code Playgroud)

在您的情况下,请使用用户当前触摸的点列表的位置(NULL, QTouchEvent::TouchScreen, touchPoints)来调用此方法。touchPoints这至少应该在 Qt 4.7 和 4.8 中工作,可能在 Qt 5 之前工作,但我没有检查。