QCompleter不支持上下键

QCompleter not support up and down key

我使用 setEditable(true) 使 QComboBox 可编辑,当我输入 cy 时,完成者的弹出视图将可见并列出所有可能的结果,例如:cyan , cyana, liecyan ... 但是当我在键盘上按下 (Qt::Key_Down) 时,第一个 cyan 将被选中并且 QComboBox 的 lineedit 的文本将被设置 cyan ,同时,完成者的弹出视图更新,仅显示 cyan 。我如何自定义它以使其表现得像 Web 的 select 组件。

我已经解决了这个问题。

1.class MyListView : public QListView

2.MyListView's bool event(...)需要实现关注的类型是QEvent::ShortcutOverride

3.based on QEvent::ShortcutOverride,当用户按下Qt:Key_UpQt::Key_Down,设置falg false,当用户释放按键时,设置flag

3.QCompleter使用setPopup(MyListView的实例)覆盖默认的listview 4. 设置 QCompleter 的正则表达式在 falg 为真时工作 5.I得到我想要的