【问题标题】:Key/Value pyqt QComboBox键/值 pyqt QComboBox
【发布时间】:2011-02-10 03:26:57
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: pyqt qcombobox


    【解决方案1】:

    使用

    cb.addItem  ( text, userData )
    

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

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

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

    【讨论】:

    • 谢谢,我认为这很容易实现。我将遇到的唯一问题是在 Qt Designer 中使用自定义 QComboBox。有没有简单的方法来添加新控件?你认为使用 qt 模型会更容易吗?我已经检查过了,它可以保存你提到的映射。但仍然无法从 db 值设置值。
    • 查看文档了解如何在 PyQt 中构建可在设计器中使用的小部件:riverbankcomputing.co.uk/static/Docs/PyQt4/…
    猜你喜欢
    • 1970-01-01
    • 2011-08-20
    • 2013-12-26
    • 2016-11-13
    • 2015-06-10
    • 1970-01-01
    • 2015-05-27
    • 2017-04-01
    • 1970-01-01
    相关资源
    最近更新 更多