如何在PyQt/PySide中根据文本设置QComboBox的项

39 投票
1 回答
75347 浏览
提问于 2025-04-18 00:56

有没有办法只通过一个项目的文本值来设置QComboBox中的某个项目?我想避免使用for i in range(myCombobox.count())这种方式去循环查找项目的索引,这样才能设置当前的索引。

1 个回答

77

是的,有一个叫做 QComboBox.findText 的方法,它可以返回匹配项的索引(如果没有找到,则返回 -1)。默认情况下,这个搜索是精确匹配,并且区分大小写,但你可以通过传入一些 匹配标志 作为第二个参数来调整这个行为。例如,如果你想要不区分大小写的匹配,可以这样做:

    index = combo.findText(text, QtCore.Qt.MatchFixedString)
    if index >= 0:
         combo.setCurrentIndex(index)

还有一个类似的 findData 方法,它是通过项的数据来进行匹配的。

撰写回答