Linux中的多点触控

时间:2010-03-12 07:11:11

标签: c++ linux qt multi-touch

我有两个问题:

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

2 个答案:

答案 0 :(得分:3)

对于多点触控问题,您可能想要查看Qt添加的Gestures API

答案 1 :(得分: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);

函数调用语法为:

qt_translateRawTouchEvent(targetWidget, deviceType, points.values());

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