Название: Глюк с virtual event() у MainWindow в Android Отправлено: Гурман от Октябрь 02, 2017, 16:58 До сих пор с таким чудом не сталкивался. Обработчик event() в MainWindow в приложении для Android хронически пропускает через один DoubleClick. То есть, в нём есть
Код: if( e->type() == QEvent::MouseButtonDblClick ) ... Так вот оно true... на каждые 2 подряд двойных тапа на экран. Можно даже смело делать 4 тапа быстро подряд, чтобы гарантированно сработало. Сделал вывод в консоль - чего там в type() на самом деле, и получаю на первый двойной тап - только MouseButtonPress. Если через любой промежуток времени ещё раз сделать двойной тап, то прилетает MouseButtonDblClick. НО! При этом я открываю ещё одно окно, тоже наследующее от MainWindow, и в нём тоже ловлю event() также точно - а там всё правильно работает. Первое главное окно довольно сложное, на нём много всего. Пока не знаю, куда копать. Может кто уже сталкивался? Очевидно существенно, что это всё в Android. Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Old от Октябрь 02, 2017, 17:15 Я смотрел-бы в первую очередь все установленные eventFilters.
Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Гурман от Октябрь 02, 2017, 17:29 Я смотрел-бы в первую очередь все установленные eventFilters. Код: bool MainWindow::event(QEvent *e) Код: grabGesture(Qt::PinchGesture); Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Old от Октябрь 02, 2017, 17:33 Вы писали, что MainWindow сложный виджет, возможно сообщения перехватывают его дочерние виджеты.
Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Гурман от Октябрь 02, 2017, 17:53 Вы писали, что MainWindow сложный виджет, возможно сообщения перехватывают его дочерние виджеты. Те, которые перехыватывают - те перехватывают (кнопки, слайдеры), через них вообще тапы не проходят. Проблема с тапами туда, где нет перехватывающих виджетов. Там есть только виджеты, которые рисуют, у них нет перегруженных event(). И под ними QGraphicsView со сценой. Но во втором окне, которое правильно работает, тоже есть QGraphicsView со сценой. То есть, проблема не в них. И потом - если бы перехватывали, то перехватывали бы каждый двойной тап, а не через один. Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Old от Октябрь 02, 2017, 17:59 Долго не искал, для примера.
В qeffects.cpp есть QAlphaWidget, который устнавливает фильтр событий от самого qApp и обрабатывает двойной клик. И уверен таких классов относящихся к QGraphicsXXX еще масса. А так дело ваше, не они - так не они. Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Гурман от Октябрь 02, 2017, 18:11 Долго не искал, для примера. В qeffects.cpp есть QAlphaWidget, который устнавливает фильтр событий от самого qApp и обрабатывает двойной клик. И уверен таких классов относящихся к QGraphicsXXX еще масса. А так дело ваше, не они - так не они. В проблемных местах либо QLabel, лежащий на QGraphicsProxyWidget, либо производный от QWidget мой класс, также лежащий на QGraphicsProxyWidget. А прокси в свою очередь на QGraphicsScene и соответственно QGraphicsView. Всё. Что самое странное - первый раз, то есть после запуска приложения, дабл-тап нормально пропускается. Второй раз уже нет. Название: Re: Глюк с virtual event() у MainWindow в Android Отправлено: Гурман от Октябрь 02, 2017, 18:51 ЫЫЫЫ!!!!.... Установил приложение на смартфон с Android 6 - глюка нет. Всё работает как полагается. Глюк есть на планшете с CyanogenMod 10.1 ака Android 4.1.1. >:(
|