Мультитач в Linux

У меня два вопроса:

  1. как имитировать событие касания в linux.
  2. как работать с мультитач на Qt в Linux.

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, но я не проверял что.


для вопроса мультитач, вы, вероятно, хотите взглянуть на жесты API что Qt добавил.