LinuxForum.Fans
Тема

Действие при нажатии клавиши в Qt

Автор: Daiquiri 9 сообщений 1509 просмотров
27.01.2015 22:14 #411649

Всем привет:)

Никак не могу понять, как в Qt организовать смену цвета виджета (через setPalette) при нажатии определенной клавиши, кто может объяснить?

(Версия Qt -- 5.3)

28.01.2015 05:05 #411696
"Daiquiri" написал:
при нажатии определенной клавиши

«клавиши» на клавиатуре или в интерфейсе?

28.01.2015 07:45 #411718

На клавиатуре. В интерфейсе это кнопка

28.01.2015 08:35 #411724

у главного окна или у какого-либо виджета имеющего фокус надо перегрузить keyPressEvent()

28.01.2015 08:48 #411726

Это через ... Нормальный способ - создать QAction и назначить на неё хоткей

28.01.2015 12:35 #411764

Но при этом требуется лишнее нажатие. Можно менять стиль или из своей KeyPressEvent() или в отдельном h-файле
для этого объекта определить стили для разных его состояний через setStyleSheet(). Это и более гибко.

Пётр.

28.01.2015 13:09 #411769

реагировать же надо не на низкоуровневое нажатие, с которым ещё повозиться придётся, а на уже декодированную системой (ну, библиотекой) комбинацию клавиш. Она же всё это замечательно сама умеет делать.

28.01.2015 13:54 #411782

Я ошибся, я должен был назвать не keyPressEvent(), a реакцию на нажатие кнопки в интерфейсе. Для него ведь уже предусмотрена
обработка, раз уж кнопка существует.

Пётр.

03.02.2015 17:59 #412902

Амигос, всем спасибо:) проблема оказалась в том, что я не прописал в одном месте grabKeyboard(), и на нажатие клавиш реакции не было

Войдите или зарегистрируйтесь, чтобы ответить.