Вопрос
У меня есть два вопроса:
- Как имитировать событие касания в Linux.
- Как работать с мультитач на Qt в Linux.
Решение
Вы можете имитировать события касания, вызвав 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.
Не связан с StackOverflow