При написании простого приложения для Android в Qt, я столкнулся с неудобной дилеммой:Qt Android вопрос жест
У меня есть подкласс 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);
что я нахожу очень своеобразен, что при запуске приложения, как это, он не признает любые жесты. Однако при удалении последней строки функции (строка А выше) жесты распознаются внезапно, но виджет не окрашивается.
Некоторые спецификации: В настоящее время я запускаю Qt 5.2.0, компилируя на Samsung Galaxy Note 10.1 GT-N8010 под управлением Android 4.1.2.
Есть ли у кого-нибудь какие-либо предложения по тому, как я мог бы выполнить этот запуск как с виджетом, так и с распознаванием жеста?
Как вы его исправили? Я пытаюсь, как вы сказали, но он не работает – Viet
Прошло некоторое время с тех пор, как я работал над этим, но я попытаюсь ответить из памяти. Насколько я помню, возникла проблема, когда обработчик события родительского класса не имел никакого способа обработки жестов касания. К счастью, у меня была возможность изменить это, и поэтому решил решить мою проблему таким образом. Также обратите внимание, что я использовал Qt 5.2.0. Я не могу точно сказать, работает ли это решение в других версиях. – Tom