I need some help adding some items to a QComboBox. So I have two comboboxes, and one populates the other depending on the item selected.
My question is that, using additem for new items, it works, but if I choose another option for the combobox, it adds the new items, but the previous items are gone – and there are blank items below the new ones.
I thought that each time I chose a new option from the first combobox to clear the contents of the second combobox. So I used the clear() on the second – but it didn’t work.
That’s how I thought of it :
self.comboBox_2.clear()
for index,i in enumerate(list1):
self.comboBox_2.addItem(_fromUtf8(""))
self.comboBox_2.setItemText(index+2, QApplication.translate("Dialog", i, None, QApplication.UnicodeUTF8))
The above is part of a function that executes when the first combobox changes.
Assuming
list1is a list of strings, then you can simply add them all at once using the addItems method:Note that you are probably using
QApplication.translatein the wrong way in your example. If you want to make it possible for the strings inlist1to be translated into a different language, you should do that when you create the the list, and use string literals.For example:
Also note that the
_fromUtf8function is only really useful if you’re using string literals containing non-ascii characters in your code – otherwise, it’s basically a no-op.EDIT
If your list contains, say, tuples of pixmaps and text, then you can use something like this: