Мультитач в Linux - PullRequest
       17

Мультитач в Linux

6 голосов
/ 12 марта 2010

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

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

Ответы [ 2 ]

3 голосов
/ 13 октября 2012

Вы можете смоделировать сенсорные события, напрямую позвонив по номеру 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, но я этого не проверял.

3 голосов
/ 12 марта 2010

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

...