Название: mousePressEvent Отправлено: vux от Июль 29, 2010, 18:58 вешаю mousePressEvent на виджэт, в котором есть другие элементы.
мой эвент срабатывает понятное дело на пустом месте виджэта и на некоторых элементах. Мне нада чтоб срабатывало и на детях а не только на виджэте - то есть во всем четырехугольнике виджэта. Название: Re: mousePressEvent Отправлено: vux от Июль 29, 2010, 19:27 Обычно для этих целей используют QShortcut c Qt::ShortcutContext Qt::WidgetWithChildrenShortcut а причем тут шорткаты к мышэ? ??? Название: Re: mousePressEvent Отправлено: SABROG от Июль 29, 2010, 20:23 Обычно для этих целей используют QShortcut c Qt::ShortcutContext Qt::WidgetWithChildrenShortcut а причем тут шорткаты к мышэ? ??? Пардон померещелось keyPressEvent. Цитировать то есть во всем четырехугольнике виджэта. У дочерних виджетов может быть своя реакция на нажатие клавиш мыши, виджет решает хочет ли он передавать информацию о клике выше к родителю или нет. Есть только один выход - вызвать QObject::installEventFilter на каждом ребенке рекурсивно и не забыть вызвать для них оригинальные обработчики событий, чтобы контролы смогли нормально функционировать.Название: Re: mousePressEvent Отправлено: vux от Июль 29, 2010, 21:24 Понятно, впринцыпе так и думал :)
Название: Re: mousePressEvent Отправлено: vux от Июль 29, 2010, 21:35 Хорошо возьмем тотжэ виджет с детьми.
Ему выставляю setMouseTracking(True), ставлю ему фильтр на mouseMoveEvent - в пустом месте работает как и положэно На детях которые разрешают ему влиять на них работает с нажатой кнопкой - то есть у них неустановлен mouseTracking. По логике рекурсивно ( widget.children() ) ставлю им setMouseTracking(True) - но они серавно реагируют только на перемещение с нажатой кнопкой. Хочу просто понять почему? Название: Re: mousePressEvent Отправлено: SABROG от Июль 30, 2010, 12:09 Хочу просто понять почему? Об этом написано (http://doc.qt.nokia.com/latest/qmouseevent.html) в документации, но почему так там не объясняется. |