Всем привет:)
Никак не могу понять, как в Qt организовать смену цвета виджета (через setPalette) при нажатии определенной клавиши, кто может объяснить?
(Версия Qt -- 5.3)
Действие при нажатии клавиши в Qt
при нажатии определенной клавиши
«клавиши» на клавиатуре или в интерфейсе?
На клавиатуре. В интерфейсе это кнопка
у главного окна или у какого-либо виджета имеющего фокус надо перегрузить keyPressEvent()
Это через ... Нормальный способ - создать QAction и назначить на неё хоткей
Но при этом требуется лишнее нажатие. Можно менять стиль или из своей KeyPressEvent() или в отдельном h-файле
для этого объекта определить стили для разных его состояний через setStyleSheet(). Это и более гибко.
Пётр.
реагировать же надо не на низкоуровневое нажатие, с которым ещё повозиться придётся, а на уже декодированную системой (ну, библиотекой) комбинацию клавиш. Она же всё это замечательно сама умеет делать.
Я ошибся, я должен был назвать не keyPressEvent(), a реакцию на нажатие кнопки в интерфейсе. Для него ведь уже предусмотрена
обработка, раз уж кнопка существует.
Пётр.
Амигос, всем спасибо:) проблема оказалась в том, что я не прописал в одном месте grabKeyboard(), и на нажатие клавиш реакции не было