python-3.x 使用PyQt5,我如何使一个QComboBox可搜索?

fslejnso  于 2022-12-27  发布在  Python
关注(0)|答案(1)|浏览(259)

我用PyQt5做了一个图形用户界面。在上面,我有一个QComboBox,它有一个超过400个项目的下拉列表。我想知道是否有什么方法可以让我在QComboBox中输入搜索匹配的案例?

brccelvz

brccelvz1#

您可以使用QCompleter来完成此操作。对于可编辑的QComboBox,将自动创建QCompleter。此完成符执行不区分大小写的内联完成,但您可以根据需要进行调整,例如

from PyQt5 import QtWidgets
from itertools import product

app = QtWidgets.QApplication([])

# wordlist for testing
wordlist = [''.join(combo) for combo in product('abc', repeat = 4)]

combo = QtWidgets.QComboBox()
combo.addItems(wordlist)

# completers only work for editable combo boxes. QComboBox.NoInsert prevents insertion of the search text
combo.setEditable(True)
combo.setInsertPolicy(QtWidgets.QComboBox.NoInsert)

# change completion mode of the default completer from InlineCompletion to PopupCompletion
combo.completer().setCompletionMode(QtWidgets.QCompleter.PopupCompletion)

combo.show()
app.exec()

相关问题