QComboBox: выберите в Key_space - PullRequest
       3

QComboBox: выберите в Key_space

2 голосов
/ 12 октября 2010

Я работаю над приложением Qt во встроенной системе, и у меня есть только пульт дистанционного управления, основным ключом которого является Key_space.

Итак, я хотел бы иметь QComboBox, в котором вы можете выбрать элемент, когданажатием кнопки Key_space.

Как это сделать?Может быть, мне следует наследовать от QComboBox и переопределить keyPressEvent?

1 Ответ

2 голосов
/ 12 октября 2010

Если Qt еще не справился с этим (и я думаю, что это произошло, но я мог ошибиться), тогда вам нужно сделать немного больше, чем просто обработать событие нажатия клавиши в поле со списком.Когда вы выбираете элемент для поля со списком, было показано другое окно со списком элементов в нем.Вам нужно как-то обработать событие нажатия клавиши для этого окна.

Для этого я бы предложил наследовать от QComboBox и установить фильтр событий в появившемся всплывающем окне (посмотрите на функции showPopup(), hidePopup() и view()).Создайте слот, который подключается к сигналу highlighted, и следите за тем, какой индекс выделен.Затем, когда всплывающее окно получает событие пробела, скрыть всплывающее окно и установить текущий индекс на последний выделенный индекс.

...