Проблема с жестом Android Qt

При написании простого приложения для Android на Qt я столкнулся с неудобной дилеммой:

У меня есть подкласс QWidget под названием PlotView, и я переопределил функцию события из него:

bool PlotView::event(QEvent *event){

if(event->type() == QEvent::Gesture){
emit gestureEvent(static_cast<QGestureEvent*>(event));
return true;
}
return QWidget::event(event); \\Line A

}

Также у меня есть следующие строки в конструкторе класса:

this->grabGesture(Qt::SwipeGesture);
this->grabGesture(Qt::PanGesture);
this->grabGesture(Qt::PinchGesture);
this->setAttribute(Qt::WA_AcceptTouchEvents);

Что я нахожу очень странным, так это то, что при запуске такого приложения оно не распознает никаких жестов. Однако при удалении последней строки функции (строка A выше) жесты внезапно распознаются, но виджет не окрашивается.

Некоторые характеристики: В настоящее время я использую Qt 5.2.0, собирая его на Samsung Galaxy Note 10.1 GT-N8010 под управлением Android 4.1.2.

Кто-нибудь есть какие-либо предложения о том, как я могу сделать это как с нарисованным виджетом, так и с распознаванием жестов?

1

Решение

Кажется добавление строк

this->grabGesture(Qt::SwipeGesture);
this->grabGesture(Qt::PanGesture);
this->grabGesture(Qt::PinchGesture);
this->setAttribute(Qt::WA_AcceptTouchEvents);

чтобы родительский класс конструктора исправил проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]