我有两个问题:
- 如何在 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 中工作,但我没有检查。
关于c++ - Linux 中的多点触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2431052/