Название: События клавиатуры Отправлено: Igors от Январь 18, 2015, 10:36 Добрый день
Есть виджет который должен иметь "курсор-рука" если юзер нажал и держит пробел, и "курсор-палец" если нажата клавиша Alt. Сейчас это сделано "по таймеру" (т.е. тупо проверяется состояние клавиш и делается setCursor). Как это сделать на событиях, учитывая что окон с такими виджетами несколько (до 10, обычно открыто 4-5). Вроде должно быть "совсем просто" - но что-то не соображу :) Спасибо Название: Re: События клавиатуры Отправлено: GreatSnake от Январь 18, 2015, 11:54 Самое простое перегрузить
Код
Но красивее будет завести базу, в которой будет поддерживаться эта фича. Название: Re: События клавиатуры Отправлено: Fat-Zer от Январь 18, 2015, 12:01 в enterEvent проверять нажат ли альт/пробел и ставить нужный курсор+ забирать на себя фокус... потом вплоть до leaveEvent смотреть keyPressEvent/keyReleaseEvent... без того чтобы отбирать фокус ничего путного в голову пока не приходит...
Название: Re: События клавиатуры Отправлено: Igors от Январь 18, 2015, 12:12 Самое простое перегрузить Да, вроде очевидно, ноКод
- а если это "целевые" нажатия - напр для QLineEdit? - придется пробегаться по окнам, выцеплять из них нужный виджет чтобы сделать setCursor. Не то чтобы сложно, но как-то громоздко. Хотелось бы сосредоточить все в самом виджете, а не "извне" Но красивее будет завести базу, в которой будет поддерживаться эта фича. А шо то за база ??? Можно подробнее?Может подключить QEvent::Enterr/Exit ? в enterEvent проверять нажат ли альт/пробел и ставить нужный курсор+ забирать на себя фокус... потом вплоть до leaveEvent смотреть keyPressEvent/keyReleaseEvent... без того чтобы отбирать фокус ничего путного в голову пока не приходит... Виджет не имеет фокуса. И придет ли keyReleaseEvent виджету - хзНазвание: Re: События клавиатуры Отправлено: GreatSnake от Январь 18, 2015, 14:03 А шо то за база ??? Можно подробнее? Реализовать базовый класс, от которого уже наследовать эти несколько виджетов. |