QComboBox setCurrentIndex通过文本

问题描述:

我有内部的不同值的组合框:是,否QComboBox setCurrentIndex通过文本

我可以设置通过我从输入接收值的组合框?我不想通过索引号来设置它。我也想尽量远离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)) 
+0

哪个返回'self.UnlHE_Drop.findText'函数? – eyllanesc

+0

什么是'UnlHE_Drop'? – eyllanesc

+0

一般来说,解决方案似乎是正确的,除非用户放置不合适的值。 – eyllanesc

首先,你必须,因为当你使用你正在寻找这些项目FINDTEXT商品添加到QComboBox,另一件事是,QInputDialog .getText返回一个元组,第一个是输入的值,第二个是一个bool,指示您是否按下yes或no。

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) 

一旦值已经INT的QComboBox一个选项,你可以用setCurrentText(QString text)将其设置为该值。