键/值pyqt QComboBox

时间:2010-04-20 13:07:50

标签: pyqt qcombobox

我想使用QComboBox,其元组中的“keys”和“values”类似于django模型中使用的元组。例如,我对一个人的性别有以下结构。

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

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

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

由于

1 个答案:

答案 0 :(得分:6)

使用

cb.addItem  ( text, userData )

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

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

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