Мультитач в Linux
У меня два вопроса:
- как имитировать событие касания в linux.
- как работать с мультитач на 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 добавил.