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

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

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

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


person Tangui    schedule 12.10.2010    source источник


Ответы (1)


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

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

person Caleb Huitt - cjhuitt    schedule 12.10.2010
comment
Qt не справляется с этим с помощью de Qt::Key_Space, но благодаря вашему ответу теперь это работает для меня. - person Tangui; 13.10.2010