我想使用QComboBox,其元组中的“keys”和“values”类似于django模型中使用的元组。例如,我对一个人的性别有以下结构。
SEX_CHOICES = (('M', 'Male'), ('F', 'Female'))
元组的第一项包含存储在数据库中的性别代码,第二项是我想在QComboBox中作为项目显示的文本。
有没有办法可以将QComboBox值设置为M并显示Male。当用户选择元素时,我也可以将选定的值作为M.
由于
答案 0 :(得分:6)
使用
cb.addItem ( text, userData )
并将数据库密钥作为userData
传递。如果您需要更改当前选择,请使用cb.itemData()
获取每个项目的数据库密钥,并将其与您需要的项目进行比较。
或者,在Python地图中添加项目时记录索引,并使用它直接查找正确的索引。
为了使事情更容易使用,请使用Python类包装QComboBox
,该类为当前数据库密钥提供setter和getter,并隐藏映射。