2010-03-12 2 views
6

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

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

3

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

+0

Ок, но как я могу имитировать контакт в Linux? Мне нужно симулировать жест. –

+0

@Alex Snet: Я не знаю, как имитировать событие касания. Когда вы задаете несколько вопросов, как это, вы должны ожидать, что некоторые люди могут знать только ответ на один из них. –