Название: Проблема прохождения событий нажатия кнопок мыши (event'ов) в виджетах Отправлено: Янковский Александр от Ноябрь 28, 2013, 11:31 Проблема в следующем.
Приложение функционирует под управлением ОС openSUSE 12.3 в окружении KDE. ЭВМ содержит в своем составе 2 монитора. Приложение имеет в своем багаже 2 QWidget'а. Каждый из виджетов разворачивается на своем мониторе и имеет в качестве родителя виджет, полученный посредством вызова метода QApplication::desktop()->screen( индекс_экрана ). Суть проблемы заключается в следующем. 1) Виджеты создаются по очереди и вписаны в соответствующие экраны 2) После окончания создания виджетов и их отображения в первом созданном виджете невозможно управление мышью и клавиатурой! Во втором виджете все функционирует штатно. При этом установлено, что первому виджету не поступают события, связанные с нажатиями клавиш мыши и клавиатуры. 3) После закрытии второго виджета в первый начинают корректно поступать события, связанные с нажатиями клавиш мыши и клавиатуры. Собственно вопрос в том, сталкивался ли кто-нибудь с подобной ситуацией в своем опыте? Название: Re: Проблема прохождения событий нажатия кнопок мыши (event'ов) в виджетах Отправлено: alexeev от Ноябрь 28, 2013, 12:26 Возможно события получает, только то окно которое активно, второе создатеся после первого, поэтому оно и активно, но это относится только к клавиатуре, а насчет мыши непонятно
Название: Re: Проблема прохождения событий нажатия кнопок мыши (event'ов) в виджетах Отправлено: Янковский Александр от Ноябрь 28, 2013, 15:13 Проблема решена.
Методом дедукции обнаружил, что во время отработки слота show() второго виджета для первого приходит событие QEvent::WindowBlocked, что по сути означает блокировку другим модальным окном приложения. Нигде в коде я модальностью окон не "игрался". НО QtDesigner за меня сам произвел логичные для него действия, а именно внутри ui-файла выставил для каждого из описаний виджетов свойство windowModality равным Qt::ApplicationModal! Вот собственно теперь и понятна логика работы. Оба виджета модальные и второй открывшийся по сути запрещает ввод с мыши и клавиатуры для первого... естественно до момента своего уничтожения. Название: Re: Проблема прохождения событий нажатия кнопок мыши (event'ов) в виджетах Отправлено: Fregloin от Ноябрь 29, 2013, 11:34 первая мысль была именно такая :), сам с подобным сталкивался
|