在网上的大多都是封装成一个新类来实现的,不符合我的需求于是根据
参考文章:https://blog.csdn.net/qq_24800941/article/details/122049285
修而来,在已有的QComboBox 的基础上来实现模糊搜索
python:
# 手动输入
self.ui.comboBox.setEditable(True)
# 添加筛选器模型来筛选匹配项
filterModel = QSortFilterProxyModel(self.ui.comboBox)
filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) # 大小不敏感
filterModel.setSourceModel(self.ui.comboBox.model())
# 添加一个使用筛选器模型的QCompleter
completer = QCompleter(filterModel,self)
# 始终显示所有(过滤后的)补全结果
completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion)
completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) # 不区分大小写
self.ui.comboBox.setCompleter(completer)
# 绑定事件
self.ui.comboBox.editTextChanged.connect(filterModel.setFilterFixedString)