在不可编辑的QComboBox中,如果您快速按某些键,将在显示的文本中执行搜索,并且将选择具有您键入的前缀的第一个项目 . 例如,如果组合框中有六个项目,“Alabama”,“Alaska”,“California”,“Colorado”,“Ohio”和“Louisiana”,并且按C,则会选择“California” . 如果等待一段时间并按O,将选择“俄亥俄州” . 但是,如果您快速键入“CO”,将选择“Colorado” .
这种行为是Qt的功能吗?显然,尽管下面是GUI框架,但它仍然普遍适用 . 如果它是Qt处理这个,我可以自定义吗?我想要做的基本上是基于ComboBox中未显示的数据执行搜索 . 例如,在用于选择列出登录名的用户的ComboBox中,只需键入用户的姓氏即可选择它 . 但是,在文本中间搜索匹配就足够了(例如,输入“nia”来选择“California”) .
起初,QCompleter似乎有所帮助,但看起来它只适用于可编辑的QComboBox ......
如果使用QComboBox无法做到这一点,应该使用哪个小部件来实现这一目标?
感谢您的关注 .
1 回答
您继承
QComboBox
并重新实现keyPressEvent . 假设您在组合框中实现了一个函数,该函数添加了一个带有两个参数的条目:登录名和实际名称: