Key/Value pyqt QComboBox

拈花ヽ惹草 提交于 2019-12-10 04:36:53

问题


I want to use a QComboBox with the "keys" and "values" from a tuple similar to the ones used in a django models. For example I have the following structure for a person's sex.

SEX_CHOICES = (('M', 'Male'), ('F', 'Female'))

The first item of the tuple contains the code of the sex that is stored in the database, and the second one the text that I want to display in the QComboBox as an item.

Is there a way in wich I could set the QComboBox value as M and it displays Male. An also when the user select the element Male I could get the selected value as M.

Thanks


回答1:


Use

cb.addItem  ( text, userData )

and pass the DB key as userData. If you need to change the current selection, use cb.itemData() to get the DB key of each item and compare it to the one you need.

Alternatively, record the indexes as you add items in a Python map and use this to directly look up the correct index.

To make things more easy to use, wrap the QComboBox with a Python class that offers setters and getters for the current DB key and which hides the mapping.



来源:https://stackoverflow.com/questions/2675296/key-value-pyqt-qcombobox

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!