将隐藏数据插入组合框pyqt
Inserting hidden data into a combobox pyqt
我不确定这是否可以完成,或者是否有更好的方法。尽管如此,我有一个数据库,我可以从中将很多项目插入组合框中,但是要搜索和删除该特定数据,我需要能够将每一行的 id 放在组合框中。但是我不完全确定如何使用 PyQT 执行此操作。
如果有人能帮助我,我将不胜感激。如果那些 id 在那里,那肯定会让我的生活更轻松,但我无法展示它们,因为普通用户永远无法理解它们。
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 通过 data/role:
index = combo.findData(456)
if index >= 0:
print(combo.itemData(index, QtCore.Qt.UserRole + 1)) # prints "other data"
我不确定这是否可以完成,或者是否有更好的方法。尽管如此,我有一个数据库,我可以从中将很多项目插入组合框中,但是要搜索和删除该特定数据,我需要能够将每一行的 id 放在组合框中。但是我不完全确定如何使用 PyQT 执行此操作。
如果有人能帮助我,我将不胜感激。如果那些 id 在那里,那肯定会让我的生活更轻松,但我无法展示它们,因为普通用户永远无法理解它们。
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 通过 data/role:
index = combo.findData(456)
if index >= 0:
print(combo.itemData(index, QtCore.Qt.UserRole + 1)) # prints "other data"