Reputation: 183
I have a ComboBox with different values inside: Yes, No.
Can I set the ComboBox by a value I receive from an input? I don't want to set it by index#. I also want to try to stay away from if statements.
I've tried something like this:
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))
Upvotes: 0
Views: 6022
Reputation: 243907
First you have to add items to the QComboBox since when you use findText you are looking for those items, Another thing is that QInputDialog.getText returns a tuple, the first is the value entered and the second is a bool that indicates whether you pressed yes or 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)
Upvotes: 2
Reputation: 1435
Once the value is already an option int the QComboBox
you can use setCurrentText(QString text)
to set it to that value.
Upvotes: 1