2010-03-12 33 views

回答

2

您可以直接调用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之前,但我没有检查。

3

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

+0

Ок,但我如何在Linux中模拟触摸? 我需要模拟手势。 – 2010-03-13 11:17:05

+0

@Alex Snet:我不知道如何模拟触摸事件。当你问这样的多个问题时,你需要期望有些人可能只知道其中一个人的答案。 – 2010-03-15 17:51:10