pyqt - 键/值 pyqt QComboBox

标签 pyqt qcombobox

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

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

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

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

谢谢

最佳答案


cb.addItem  ( text, userData )

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

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

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

关于pyqt - 键/值 pyqt QComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675296/

相关文章:

c++ - QScrollArea 获取滚动或总偏移量

python-2.7 - 如何清除 pyqt QTableWidget?

c++ - QCombobox - 隐藏下拉列表中的第一项

c++ - QComboBox 项目文本可以包含 2 种颜色吗?

python - PyQt - 不希望无模式对话框总是在最前面

python - 将图片与 QGraphicsItem 关联

python - 使用 PyQt 从 MySQL 查询渲染 PDF 速度缓慢

qt - QStandardItem + QComboBox

python - QComboBox 项目文本在 Windows 上被截断