Название: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 11, 2013, 12:00 Здравствуйте!
Touchscreen работает в режиме - мышь. Но вот возникли проблемы - заголовки окон, то есть виндовые кнопки: закрыть окно, расширить … не работают если нажимать с точскрина. Проект Был написан в Qt 5.0.2 тогда с заголовками окон проблем не было но все кнопки пушБаттон нажимались дважды. Скачал Qt 5.1.1 c пушБаттон проблема ушла, но начались с заголовками окон. Реакция на обычную мышь нормальная. Переопределил событие mousePressEvent(QMouseEvent *e); Так вот при нажатие с точскрина в область заголовка окна приходит сообщение с координатами нажатия , пример х 100у-8, то есть винда, его не отрабатавает с мышью такие координаты "в не рамки окна" не приходят и окно нормально реагирует. Куда копать? Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 11, 2013, 14:15 Думаю стоит копать в сторону тач скрина. Есть разные версии тачей и они по разному обрабатывают нажатия. Те, которые мне встречались реагировали адекватно на нажатие - по сути притворялись в системе мышкой :)
Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 11, 2013, 14:21 Цитировать Думаю стоит копать в сторону тач скрина. Есть разные версии тачей и они по разному обрабатывают нажатия. Те, которые мне встречались реагировали адекватно на нажатие - по сути притворялись в системе мышкой Ну тогда как объяснить разные глюки при разных версиях Qt? И остальные приложения в винде вроде работают адекватнопри нажатие на заглавление окна мышью приходит сообщение - QEvent::NonClientAreaMouseButtonPress при нажатие тудаже с точскрина приходит - QEvent::MouseButtonPress (кордината у в минусе) Почему? и что за это отвечает? Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 11, 2013, 15:57 Ещё раз напишу - каждый тач скрин имеет свои особенности. Это раз. Он может работать как мышка, может имитировать мышку, может просто посылать через драйвер координаты нажатия и клик.
Во вторых вы не привели ни кода вашей программы, ни каких либо описаний её. Вдруг вы сами обрабатываете ваши "нажатия" и чего - то напортачили? В третьих за ВСЕ крестики на окнах отвечает оконный менеджер WINDOWS! Он одинаково работает со ВСЕМИ окнами, за исключением тех, которые сами отрисовывают свои заголовки и сами же обрабатывают нажатия. PS А поведение Qt грамотное. Оно получает клик на заголовке окна, который обрабатывает оконный менеджер. Заголовок не является окном программы. Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 11, 2013, 16:25 Цитировать А поведение Qt грамотное. Оно получает клик на заголовке окна, который обрабатывает оконный менеджер. Заголовок не является окном программы. Так в этом и проблема - не обрабатывает оконный менеджер...код : Код: int main(int argc, char *argv[]) Код: void MainWindow::ClicM() после создания дилог QDialogM не закрывается от точскрина от мыши все нормально Монитор ЕТ2243L http://www.elotouch.com/ PS такой глюк проявляется в 95% Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 11, 2013, 16:37 Елотач моя прелесть :)
Хм... Диалог... А если заменить диалог на QWidget нормально отработает? Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 11, 2013, 16:50 Цитировать Хм... Диалог... А если заменить диалог на QWidget нормально отработает? Код: QWidget *wd = new QWidget(this,Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::Dialog); также заметил если окный менеджер перестал работать то после нажатия на другое окно или рабочий стол (наше приложение теряет фокус) то тогда менеджер начинает работать. Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 11, 2013, 19:42 Я попросил заменить на QWidget. Со стандартным конструктором. Просто окно. Создать. Модальное. Всё. Сделайте это пожалуйста.
Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 12, 2013, 11:38 Я попросил заменить на QWidget. Со стандартным конструктором. Просто окно. Создать. Модальное. Всё. Сделайте это пожалуйста. Аналогично. тыкаем за пределами окна (но в пределах родителя) а окну приходит MouseButtonPress с координаторами со знаком минус, хотя по идее это сообщение должно поступить уже другому окну (родителю и тот должен заставить мерцать модальное окно). Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 12, 2013, 12:59 А как вы определили что ему приходит, если вы, надеюсь, создали обычного QWidget и установили флаг модальности?
PS такое чувство что вы городите какую то фигню с перехватом событий и грабом мыши. Сделайте стандартный QWidget млеа :) Код: QWidget * widget = new QWidget(); Вот те три строки, которые я прошу вас сделать. И убрать нафиг все ваши обработки евентов/перехвата событий/installEventFilter/grabKeyboard/grabMouse. Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 12, 2013, 15:19 А как вы определили что ему приходит, если вы, надеюсь, создали обычного QWidget и установили флаг модальности? PS такое чувство что вы городите какую то фигню с перехватом событий и грабом мыши. Сделайте стандартный QWidget млеа :) Код: QWidget * widget = new QWidget(); Вот те три строки, которые я прошу вас сделать. И убрать нафиг все ваши обработки евентов/перехвата событий/installEventFilter/grabKeyboard/grabMouse. Да я так и создавал! сообщения ловил утилитой spyxx.exe от микрософта Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 12, 2013, 16:52 Ну тогда хз. Я б посоветовал попробовать версию Qt 4.7.2 ибо она у меня работала стабильно. Но и в 5 у меня проблем не было.
PS более помочь ничем не могу. Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 13, 2013, 11:57 Ну тогда хз. Я б посоветовал попробовать версию Qt 4.7.2 ибо она у меня работала стабильно. Но и в 5 у меня проблем не было. PS более помочь ничем не могу. Напиши об этой проблеме Qtешникам. Пускай разгребут, "в эру сенсоров и такая лажа" Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 13, 2013, 12:19 Её и я то в принципе разгрести мог, был бы твой монитор у меня :) Но с этим и проблема. Что можно проверять только с ним. А он не менее тридцадки стоит. Сам мучался когда на панельники программу писал. Всё только сам ^.^
Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 13, 2013, 15:42 Тут не в мониторе проблема а в Qt так как в разных версиях Qt разные глюки... (и глюки только в приложениях Qt) но думаю в ближайшие время протестирую на сенсорном моноблоке. (думаю проблема будет аналогична).
Пока убрал фреймы Qt::FramelessWindowHint и добавил pushButton c close(); Название: Re: Win7 Qt Touchscreen Отправлено: Bepec от Декабрь 13, 2013, 22:53 Но мне кажется что у вас что-то в программе/вашей сборке Qt(если собирали сами) :) Ибо elo touch имитирует мышку. А работа с мышкой на уровне системы одинаково для всех приложений.
PS как самый простой вариант перекинуть туда приложение из примеров Qt. Вот как оно отработает отпишите :) Ибо не верится всё равно :) Название: Re: Win7 Qt Touchscreen Отправлено: Dima от Декабрь 16, 2013, 09:43 Но мне кажется что у вас что-то в программе/вашей сборке Qt(если собирали сами) :) Ибо elo touch имитирует мышку. А работа с мышкой на уровне системы одинаково для всех приложений. PS как самый простой вариант перекинуть туда приложение из примеров Qt. Вот как оно отработает отпишите :) Ибо не верится всё равно :) Qt я сам не собирал. я поставил Qt 5.2.0 for Windows 32-bit (MinGW 4.8, OpenGL, 689 MB) (Info) |