我有两个问题:
- 如何在linux中模拟触摸事件。
- 如何在 Linux 中的 Qt 上使用多点触控。
对于多点触控问题,您可能想看看 Qt 添加的Gestures API。
您可以通过直接调用来模拟触摸事件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 之前,但我没有检查。