У меня проблема с поддержкой QT touch / multitouch в Windows 8 на планшете Acer W501 x86 с 4-точечным сенсорным экраном.
У меня есть виджет QGraphicsView, для которого я создал
setAttribute(Qt::WA_AcceptTouchEvents);
Родитель виджета имеет метод eventFilter:
bool MyGUI::eventFilter(QObject* pObject, QEvent* pEvent)
{
QEvent::Type eType = pEvent->type();
if (pObject == _uiWindow._multitouchArea)
{
if ((eType == QEvent::TouchBegin) || (eType == QEvent::TouchEnd) || (eType == QEvent::TouchUpdate))
{
// invoke multi touch event handling here
_handleTouchEvent(pEvent);
}
else if ((eType == QEvent::MouseButtonPress) || (eType == QEvent::MouseButtonRelease) || (eType == QEvent::MouseMove))
{
// invoke mouse based handling here
_handleMouseEvent(pEvent);
}
}
else
{
return pObject->event(pEvent);
}
return false;
}
, который установлен в QGraphicsViewWidget.
Теперь я понимаю, что Qt по умолчанию интерпретирует события одноточечного касания как события мыши и отправляет их в приложение таким образом.Тем не менее, я не смог вызвать какие-либо события TouchBegin / TouchUpdate / TouchEnd, независимо от того, как сильно я нажимаю на сенсорный экран с какой-либо частью моей анатомии ...
Есть ли что-то, чем я являюсьздесь не хватает?
Спасибо всем!