如何在PyQt/PySide中将QComboBox设置为项的文本?

38

如果只知道一个项的文本值,是否可以将QComboBox设置为该项?我正在尝试避免循环遍历 for i in range(myCombobox.count()) 来查找项的索引,以便可以将其用于设置当前索引。

1个回答

76

是的,有QComboBox.findText函数,它会返回匹配项的索引(如果没有匹配项,则返回-1)。默认情况下,搜索会进行精确的区分大小写匹配,但您可以通过将一些match-flags作为第二个参数传递来调整行为。例如,要进行不区分大小写的匹配:

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

还有一个等效的findData方法,它是通过项目数据进行匹配。


区分大小写实际上是我需要的。但知道搜索设置是可调整的也很好。再次感谢! - alphanumeric
子字符串怎么样?我需要发另一个问题吗? - greendino
1
@greendino 请查看我的答案中的链接,这将向您展示所有选项。听起来你只需要使用 Qt.MatchContains - ekhumoro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接