QCompleter не поддерживает клавиши вверх и вниз - PullRequest
0 голосов
/ 31 мая 2018

Я использую setEditable(true), чтобы сделать QComboBox редактируемым, когда я ввожу cy, тогда будет отображаться всплывающее окно завершителя, в котором перечислены все возможные результаты, такие как: cyan, cyana, liecyan ..Но когда я нажимаю клавишу «Вниз» на клавиатуре (Qt::Key_Down), выбирается первая cyan, и текст строки редактора QComboBox будет установлен на cyan, в то время как всплывающее окно просмотра завершает, только cyan показывает.Как я могу настроить его так, чтобы он вел себя как веб-компонент select.

1 Ответ

0 голосов
/ 04 июня 2018

Я решил этот вопрос.

1. class MyListView : public QListView

2. MyListView's bool event(...) необходимо реализовать, чтобы заботиться о типе QEvent::ShortcutOverride

3. на основе QEvent::ShortcutOverride, когда пользователь нажимает Qt:Key_Up или Qt::Key_Down, установите falg false, когда пользовательский ключ разблокировки, установите flag true

3. QCompleter use setPopup (MyListView экземпляр) для переопределения списка по умолчанию 4. установите регулярное выражение QCompleter для работы, когда falg верно 5. я получил то, что хочу

...