Вопрос

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

  1. Как имитировать событие касания в Linux.
  2. Как работать с мультитач на 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top