Название: QListWidget + mouse click Отправлено: once_again_abc от Декабрь 02, 2011, 12:48 есть объект QListWidget внутри вертикального лэйаута на некоем QWidget. Требуется перехватывать мышиные клики ДО того как их обработает QListWidget. Установил eventFilter на этот объект - нажатия клавиш успешно перехватываются, а мышиные клики полностью игнорируются. Включил setMouseTracking - не помогает.
Название: Re: QListWidget + mouse click Отправлено: kambala от Декабрь 02, 2011, 12:50 в фильтре событий надо возвращать false для перехваченных нажатий, тогда событие пойдет дальше по цепочке
Название: Re: QListWidget + mouse click Отправлено: once_again_abc от Декабрь 02, 2011, 12:52 в фильтре событий надо возвращать false для перехваченных нажатий, тогда событие пойдет дальше по цепочке я знаю. фильт не вызывается для кликов мыши. Название: Re: QListWidget + mouse click Отправлено: kambala от Декабрь 02, 2011, 13:07 а QEvent::MouseButtonPress?
Название: Re: QListWidget + mouse click Отправлено: once_again_abc от Декабрь 02, 2011, 13:11 а QEvent::MouseButtonPress? а разве он приходит уже не после того как клик был и current row поменялся? мне как раз нужно не допустить смены строчки. Название: Re: QListWidget + mouse click Отправлено: kambala от Декабрь 02, 2011, 14:16 ты попадаешь в фильтр событий до того, как они приходят элементам
Название: Re: QListWidget + mouse click Отправлено: GreatSnake от Декабрь 02, 2011, 14:31 есть объект QListWidget внутри вертикального лэйаута на некоем QWidget. Требуется перехватывать мышиные клики ДО того как их обработает QListWidget. Установил eventFilter на этот объект - нажатия клавиш успешно перехватываются, а мышиные клики полностью игнорируются. Включил setMouseTracking - не помогает. Инсталлировать фильтер нужно на вьюпорт:Код
Название: Re: QListWidget + mouse click Отправлено: once_again_abc от Декабрь 02, 2011, 14:57 есть объект QListWidget внутри вертикального лэйаута на некоем QWidget. Требуется перехватывать мышиные клики ДО того как их обработает QListWidget. Установил eventFilter на этот объект - нажатия клавиш успешно перехватываются, а мышиные клики полностью игнорируются. Включил setMouseTracking - не помогает. Инсталлировать фильтер нужно на вьюпорт:Код
Спасибо! Не могли бы вы объяснить почему надо фильтр устанавливать на вьюпорт виджета? И почему фильтр на сам виджет работает для клавиатуры и не работает для мышиных кликов? Название: Re: QListWidget + mouse click Отправлено: GreatSnake от Декабрь 02, 2011, 15:16 Не могли бы вы объяснить почему надо фильтр устанавливать на вьюпорт виджета? И почему фильтр на сам виджет работает для клавиатуры и не работает для мышиных кликов? Мышиные события передаются непосредственно в окно, в котором было сделано нажатие, т.е. в твоём случае это окно вьюпорта.Клавиатурные события сначала приходят в топ-левел окно и уже "фокус-менеджер" пересылает событие в в саб-окно, которое имеет фокус. Название: Re: QListWidget + mouse click Отправлено: once_again_abc от Декабрь 03, 2011, 02:13 Не могли бы вы объяснить почему надо фильтр устанавливать на вьюпорт виджета? И почему фильтр на сам виджет работает для клавиатуры и не работает для мышиных кликов? Мышиные события передаются непосредственно в окно, в котором было сделано нажатие, т.е. в твоём случае это окно вьюпорта.Клавиатурные события сначала приходят в топ-левел окно и уже "фокус-менеджер" пересылает событие в в саб-окно, которое имеет фокус. Спасибо! |