2015-09-12 1 views
0

Je ne sais pas si cela peut être fait ou s'il y a une meilleure façon de le faire. Néanmoins, j'ai une base de données à partir de laquelle je peux insérer beaucoup d'éléments dans une liste déroulante, mais pour rechercher et supprimer pour ces données spécifiques, je dois être en mesure de placer l'identifiant de chaque ligne dans la liste déroulante. Cependant, je ne suis pas entièrement sûr de la façon de le faire avec PyQT.Insertion de données cachées dans une pyqt de type combobox

Si quelqu'un pouvait m'aider, je l'apprécierais. Cela me rendrait certainement la vie plus facile si ces identifiants étaient là, mais je ne peux pas les montrer parce qu'un utilisateur normal ne les comprendrait jamais.

Répondre

0

L'API standard pour adding items fait déjà exactement ce que vous voulez:

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

Plus d'une donnée peut être associée à chaque élément en utilisant un rôle différent pour chacun d'eux (le rôle par défaut est QtCore.Qt.UserRole) :

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

Vous pouvez ensuite find items par des données/rôle:

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

Je vois, merci pour la réponse. – Argus