我有两个问题:
您可以通过直接调用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之前,但我没有检查。
对于多点触控问题,您可能希望看看Qt添加的手势API 。