2010-03-12 10 views

Odpowiedz

2

Można symulować zdarzenia dotykowe, dzwoniąc pod numer qt_translateRawTouchEvent bezpośrednio. (Ta metoda nie jest udokumentowana, ale jest w wersji qapplication.cpp i została wyeksportowana).

Chcesz umieścić to na górze pliku:

// forward-declaration of Qt internal function 
Q_GUI_EXPORT void qt_translateRawTouchEvent(QWidget *window, 
             QTouchEvent::DeviceType deviceType, 
             const QList<QTouchEvent::TouchPoint> &touchPoints); 

Składnia wywołania funkcji jest:

qt_translateRawTouchEvent(targetWidget, deviceType, points.values()); 

w wywołaniu przypadku ta metoda z (NULL, QTouchEvent::TouchScreen, touchPoints) gdzie touchPoints jest Twoja lista punkty aktualnie dotykane przez użytkownika. Powinno to działać przynajmniej w Qt 4.7 i 4.8, prawdopodobnie wcześniej w Qt 5, ale tego nie sprawdziłem.

3

W przypadku pytania wielodotykowego prawdopodobnie chcesz rzucić okiem na Gestures API dodany przez Qt.

+0

Ок, ale w jaki sposób mogę symulować dotyk w systemie Linux? Potrzebuję symulować gest. –

+0

@Alex Snet: Nie wiem, jak symulować zdarzenie dotyku. Kiedy zadajesz wiele takich pytań, musisz się spodziewać, że niektórzy ludzie znają tylko odpowiedź na jedno z nich. –