如何在PyQt/PySide中根据文本设置QComboBox的项
有没有办法只通过一个项目的文本值来设置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 方法,它是通过项的数据来进行匹配的。