键/值pyqt QComboBox

Dan*_*ilo 6 pyqt qcombobox

我想使用QComboBox与元组中的"键"和"值"类似于django模型中使用的元组.例如,我有一个人的性别以下结构.

SEX_CHOICES = (('M', 'Male'), ('F', 'Female'))
Run Code Online (Sandbox Code Playgroud)

元组的第一项包含存储在数据库中的性别代码,第二项是我想在QComboBox中作为项目显示的文本.

有没有办法我可以将QComboBox值设置为M并显示Male.当用户选择元素时,我也可以将所选值作为M.

谢谢

Aar*_*lla 6

使用

cb.addItem  ( text, userData )
Run Code Online (Sandbox Code Playgroud)

并传递DB密钥为userData.如果您需要更改当前选择,请使用cb.itemData()获取每个项目的数据库键并将其与您需要的项目进行比较.

或者,在Python地图中添加项目时记录索引,并使用它直接查找正确的索引.

为了使事情更容易使用,请QComboBox使用Python类包装,该类为当前数据库密钥提供setter和getter,并隐藏映射.