QCompleter не поддерживает клавиши вверх и вниз

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

1 ответ

Решение

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

1.class MyListView : public QListView

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

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

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

Другие вопросы по тегам