Мультитач в 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.