开发者

Getting all items of QComboBox - PyQt4 (Python)

开发者 https://www.devze.com 2023-04-06 14:00 出处:网络
I have A LOT of QComboBoxes, and at a certain point, I need to fetch every item of a particular QComboBox to iterate through.

I have A LOT of QComboBoxes, and at a certain point, I need to fetch every item of a particular QComboBox to iterate through.

Although I could just have a list of items that correspond to the items in the QComboBox, I'd rather get them straight from the widget its开发者_如何学JAVAelf (there are a huge amount of QComboBoxes with many items each).

Is there any functions / methods that will do this for me?

(Eg:

 QComboBoxName.allItems()

)

I've looked through the class reference but couldn't find anything relevant.

I've thought of a few messy methods, but I don't like them.

(Like iterating through the QComboBox by changing the index and getting the item, etc).


Python 2.7.1

IDLE 1.8

Windows 7

PyQt4


As far as I can tell, you can just reference an item using .itemText():

AllItems = [QComboBoxName.itemText(i) for i in range(QComboBoxName.count())]


Building on the accepted answer, you can actually give you combobox a method callable using combo_box.allItems(), by doing this:

    setattr(combo_box, "allItems", lambda: [combo_box.itemText(i) for i in range(self.ui.combo_box.count())])
    print(combo_box.allItems()) # Works just fine!

I believe it has to be done in the scope where combo_box was born, otherwise setattr fails. Tested in PyQt5 and Python 3.7.

0

精彩评论

暂无评论...
验证码 换一张
取 消