Question

Je veux utiliser un QComboBox avec les « clés » et « valeurs » d'un tuple similaire à ceux utilisés dans un modèle de django. Par exemple, j'ai la structure suivante pour le sexe d'une personne.

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

Le premier élément du tuple contient le code du sexe qui est stocké dans la base de données, et le second le texte que je veux afficher dans la QComboBox comme un élément.

Y at-il une façon wich je pourrais définir la valeur de QComboBox comme M et il affiche Homme. Un même lorsque l'utilisateur de sélectionner l'élément mâle que je pouvais obtenir la valeur sélectionnée comme M.

Merci

Était-ce utile?

La solution

Utilisez

cb.addItem  ( text, userData )

et passer la clé DB userData. Si vous devez changer la sélection actuelle, utilisez cb.itemData() pour obtenir la clé DB de chaque élément et de le comparer à celui que vous avez besoin.

Vous pouvez également enregistrer les indices que vous ajoutez des éléments dans une carte Python et l'utiliser pour regarder directement l'index correct.

Pour rendre les choses plus faciles à utiliser, envelopper le QComboBox avec une classe Python qui offre setters et getters pour la clé actuelle de DB et qui cache la mise en correspondance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top