我想在ComboBox
中使用大量项目实现某种搜索。它包含约500行,按名称排序。因此,当用户按A
键时,我希望按此方式执行,只显示以A...
开头的行,然后按s
它会显示以As...
开头的行等。但是Key
事件仅在ComboBox
关闭时才有效。如果显示下拉列表,则不会发生任何键事件,除了一些内部事件,如箭头和Esc / Enter。
任何想法如何做到这一点?任何建议和建议将不胜感激!
答案 0 :(得分:2)
您不需要这么难的代码,有极其简单快速的解决方案。自动完成有一个特殊类 - QCompleter
。所以答案很简单,用所需数据创建QCompleter
并使用setCompleter()
setter将其设置为comboBox。
QCompleter *completer = new QCompleter(mdl, this);//mdl is a model with some data
completer->setCaseSensitivity(Qt::CaseInsensitive);
ui->comboBox->setCompleter(completer);
没有完成者的结果(原始的comboBox):
完成者的结果: