我有两个问题:

  • 如何在Linux中模拟触摸事件。
  • 如何在Linux的Qt上使用多点触控。
  • 最佳答案

    您可以通过直接调用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是您用户当前触摸的点列表。
    这至少应该在Qt 4.7和4.8中起作用,可能在Qt 5中才可以,但是我没有检查。

    10-08 09:25