Название: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: billy4685 от Февраль 03, 2015, 12:43 Здравствуйте господа форумчане. Начал я разбираться немного с QEvent. И тут озадачился одной проблемой: Как описать событие - отпускание клавиши мыши вне области кнопки (при условии, что мышь отводят от кнопки после ее нажатия не отпуская клавишу мыши)? Какой QEvent использовать? Может необходимо как-то совмещать несколько? Но если я к примеру делаю вот так:
Код: if(event->type() == (QEvent::MouseButtonRelease | QEvent::MouseMove)){ то почему-то это не работает, но при этом при отжатии клавиши ctrl на клавиатуре, кнопка закрашивается. Как это понимать? Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: kambala от Февраль 03, 2015, 13:40 & вместо == попробуй
Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: gil9red от Февраль 03, 2015, 13:42 // event->type() && (QEvent::MouseButtonRelease | QEvent::MouseMove)
А разве типы евентов могут быть комбинированными? Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: ammaximus от Февраль 03, 2015, 13:49 Это вообще что-то не то, в чем состоит задача?
Если курсор уходит с кнопки (QWidget), кнопка перестает получать события, их теперь получает форма, на которой находится кнопка или куда там курсор передвинулся. Чтобы отлавливать моменты перемещения в момент нажатия нужно отлавливать onMouseMove, и смотреть QMouseEvent::buttons(), который пришел во время мува. Чтобы что-то куда-то перетаскивать нужно использовать драгндроп эвент. А чтобы что-то подкрашивать при наведении вообще есть stylesheet:hover. Уточните что именно хотите получить. Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: Bepec от Февраль 03, 2015, 15:48 QEvent::MouseButtonRelease | QEvent::MouseMove как бы это Побитовое ИЛИ (or) a | b
И ваше условие некорректное, увы. Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: billy4685 от Февраль 03, 2015, 19:12 Всем спасибо за ответы, учту.
Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: kambala от Февраль 03, 2015, 19:47 Это вообще что-то не то, в чем состоит задача? а в иос есть специальное событие для того, что хочет тс :)Если курсор уходит с кнопки (QWidget), кнопка перестает получать события, их теперь получает форма, на которой находится кнопка или куда там курсор передвинулся. Название: Re: Как описать событие отпускание клавиши мыши вне области кнопки? Отправлено: Igors от Февраль 04, 2015, 15:09 Как описать событие - отпускание клавиши мыши вне области кнопки (при условии, что мышь отводят от кнопки после ее нажатия не отпуская клавишу мыши)? Какой QEvent использовать? Если курсор уходит с кнопки (QWidget), кнопка перестает получать события, их теперь получает форма, на которой находится кнопка или куда там курсор передвинулся. Нет, если движение было с зажатой кнопкой, то widget на котором случилось нажатие продолжает получать события mouseMove и mouseRelease. Qt хранит его в переменной qt_button_down. Поэтому можно действовать проще, напр перекрыть mouseMoveEvent и/или mouseReleaseEvent. |