keyPressEvent () не улавливает некоторые ключи в OSX

#c #qt #macos #keypress

#c #qt #macos #нажатие клавиши

Вопрос:

Я пишу программу на Qt c , и у меня возникли некоторые проблемы с обработкой событий нажатия клавиш. При запуске в Linux (Ubuntu 10.10) или Windows 7 приложение отлично улавливает эти ключевые события. Однако, когда я запускаю программу в OSX 10.6.7, она не улавливает никаких символьных клавиш, цифровых клавиш или клавиш со стрелками. Он улавливает caps lock, command, option, control, shift (клавиши-модификаторы), но ничего больше.

Есть ли какой-то особый случай OSX, который мне нужно обработать? Возможно, конфигурация? или сигнал, с которым мне нужно подключиться?

TIA

Комментарии:

1. Вы уверены, что это не проблема с фокусом или фильтрацией? у вас есть минимальный тестовый пример?

Ответ №1:

Вам нужно установить политику фокусировки окна, чтобы заставить его принимать ключи.

Что-то вроде этого:

QMainWindow.setFocusPolicy ( Qt::StrongFocus );