How to add items to a QComboBox in PyQt/PySide How to add items to a QComboBox in PyQt/PySide python python

How to add items to a QComboBox in PyQt/PySide


Assuming list1 is a list of strings, then you can simply add them all at once using the addItems method:

self.comboBox_2.clear()self.comboBox_2.addItems(list1)

Note that you are probably using QApplication.translate in the wrong way in your example. If you want to make it possible for the strings in list1 to be translated into a different language, you should do that when you create the the list, and use string literals.

For example:

list1 = [    self.tr('First Item'),    self.tr('Second Item'),    self.tr('Third Item'),    ]

Also note that the _fromUtf8 function 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:

self.comboBox_2.clear()for pixmap, text in list1:    self.comboBox_2.addItem(QIcon(pixmap), text)


There are some simple and easy to read demos/examples herehttps://github.com/shuge/Enjoy-Qt-Python-Binding ,

clone it and you will find a demo about how to use basic QComboBox and custom its icon item.


I had to populate the comboBox using the names from a textfile

Here's the code:

    names = self.classes_names()    self.comboBox.addItems(names)    def classes_names(self):        coconames = CURRENT_DIR + os.sep + 'yolo-coco' + os.sep + 'coco.names'        with open(coconames) as reader:            return reader.readlines()

I hope it will help someone in the future.