7

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

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

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

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

谢谢

4

1 回答 1

6

利用

cb.addItem  ( text, userData )

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

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

为了让事情更容易使用,QComboBox用一个 Python 类包装,该类为当前 DB 键提供 setter 和 getter,并隐藏映射。

于 2010-04-20T13:21:22.143 回答