QComboBox setCurrentIndex按文字显示

时间:2017-07-26 17:05:05

标签: python python-3.x pyqt pyqt5 qcombobox

我有一个包含不同值的ComboBox:是,否。

我可以按照从输入中收到的值设置ComboBox吗?我不想用索引#来设置它。我也想试着远离if语句。

enter image description here

我尝试过这样的事情:

    self.UnlHE_Drop = QtWidgets.QComboBox(self.scrollAreaWidgetContents)
    self.UnlHE_Drop.setObjectName("UnlHE_Drop")
    self.UnlHE_Drop.addItem("")
    self.UnlHE_Drop.setItemText(0, "")
    self.UnlHE_Drop.addItem("")
    self.UnlHE_Drop.addItem("")

def retranslateUi(self, VlS):
    _translate = QtCore.QCoreApplication.translate
    VlS.setWindowTitle(_translate("VlS", "Value"))
    self.UnlHE_Drop.setItemText(1, _translate("VlS", "Yes"))
    self.UnlHE_Drop.setItemText(2, _translate("VlS", "No"))
    self.UnlHE_DropInfo = QInputDialog.getText(None, 'Answer:', 'Yes or No:')
    self.UnlHE_Drop.setCurrentIndex(self.UnlHE_Drop.findText(self.UnlHE_DropInfo))

2 个答案:

答案 0 :(得分:2)

首先你必须向QComboBox添加项目,因为当你使用findText时你正在寻找那些项目,另一件事是QInputDialog.getText返回一个元组,第一个是输入的值,第二个是bool,表示是否你按是或否。

self.UnlHE_Drop = QtWidgets.QComboBox(self.scrollAreaWidgetContents)
self.UnlHE_Drop.addItems(["Yes", "No"])
UnlHE_DropInfo, ok = QInputDialog.getText(None, 'Answer:', 'Yes or No:')
if ok:
    self.UnlHE_Drop.setCurrentText(UnlHE_DropInfo)

答案 1 :(得分:1)

一旦该值已经成为QComboBox中的一个选项,您就可以使用setCurrentText(QString text)将其设置为该值。