将隐藏数据插入组合框pyqt

时间:2015-09-12 05:59:58

标签: python combobox pyqt4 qcombobox

我不确定是否可以这样做,或者是否有更好的方法。尽管如此,我有一个数据库,我可以从中将大量项目插入到组合框中,但是为了搜索和删除特定数据,我需要能够将每行的id放在组合框中。但是我不完全确定如何使用PyQT来做到这一点。

如果有人能帮助我,我会很感激。如果那些id在那里,它肯定会让我的生活更轻松,但我无法展示它们,因为普通用户无法理解它们。

1 个答案:

答案 0 :(得分:1)

adding items的标准API已经完全符合您的要求:

# add some items with associated data
for identifier in (123, 456, 789):
    combo.addItem('text', identifier)

通过为每个项目使用不同的角色(默认角色为QtCore.Qt.UserRole),可以将多个数据与每个项目相关联:

combo.setItemData(index, 'other data', QtCore.Qt.UserRole + 1)

然后您可以通过数据/角色find items

index = combo.findData(456)
if index >= 0:
    print(combo.itemData(index, QtCore.Qt.UserRole + 1)) # prints "other data"