Forum QtFR

La communauté francophone Qt

Vous n'êtes pas identifié(e).

Annonce

Qt 4: 4.8.4 - Qt 5: 5.0.2 - Qt Creator: 2.7.0 - Qt Installer: 1.3.0 - VS Qt 4: 1.1.11 - VS Qt 5: 1.2.1 - Monkey Studio: 1.9.0.4

#1 07-08-2012 16:44:00

LeaB
Membre(e) Qt
Inscription : 03-07-2012
Messages : 16

valeur different de affichage ComboBox

Bonjour à tous,
j'aurais souhaité savoir si lorsqu'on ajoute des items a une comboBox avec la commande :
Nom_combo.addItems(Item_a_ajouter)
il était possible que la valeur d'un item soit différent de son affichage.

exemple : je souhaite que dans la liste déroulante apparaisse "enfant" "adolescent" et "adulte" mais que les valeurs soient codées au moment ou on récupère le choix de l'utilisateur : 1,2 et 3.

merci

Léa

Hors ligne

#2 07-08-2012 16:56:47

babaOroms
Administrateur Qt
Lieu : Alpes de Haute Provence
Inscription : 29-11-2004
Messages : 1 700

Re : valeur different de affichage ComboBox

En natif je ne pense pas mais si tu fais une QMap genre:

Ensuite au moment du choix tu récupères le vrai text :

C'est un exemple rapide, d'autres solutions existent


EDIT :
Apres si tu veux juste récupérer 1 pour enfant, 2 pour adolescent, 3 pour adulte,
avec le currentIndex() + 1 (car démarre à 0) tu l'as directement


Avant il était roms18, mais ça c'était avant.
It is impossible to make anything foolproof because fools are so ingenious (Murphy's law).

Hors ligne

#3 07-08-2012 19:02:03

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 701

Re : valeur different de affichage ComboBox

Bonjour !

Une QComboBox stocke 3 valeurs dans chaque ligne : une icône, un texte, et une valeur quelconque (itemData, un QVariant), voire plusieurs si tu définis plusieurs rôles.
Pour chaque entrée, fais un setItemData (.....), que tu récupères ensuite. Au lieu de itemtext (index) tu lis itemData (index).

En ligne

#4 08-08-2012 06:49:27

babaOroms
Administrateur Qt
Lieu : Alpes de Haute Provence
Inscription : 29-11-2004
Messages : 1 700

Re : valeur different de affichage ComboBox

Et ben là, je suis complètement passé à côté.
Je croyais qu'il y avait des itemData que sur les classes d'item (QTableWidgetItem, QStandardItem, QListWidgetItem) mais pas sur les widgets conteneurs.
Et bien j'ai aussi appris quelque chose que je n'aurai même pas cherché dans la doc.
@PapaJaac : merci
@LeaB : prend la solution de PapaJaac


Avant il était roms18, mais ça c'était avant.
It is impossible to make anything foolproof because fools are so ingenious (Murphy's law).

Hors ligne

#5 08-08-2012 09:56:13

LeaB
Membre(e) Qt
Inscription : 03-07-2012
Messages : 16

Re : valeur different de affichage ComboBox

Salut à vous deux,
merci beaucoup de vouloir m'aider.
Voici le code du coup que j'ai tenté :

Je souhaiterais que dans ma liste aparaissent affichage1, affichage2 et affichage3 et que selon le choix la valeur mise dans la table soit val1, val2 ou val3.

Ca ne marche pas (la valeur mise est affichageX), sauriez-vous pourquoi?
désolée je débute hmm
merci

Léa

Hors ligne

#6 08-08-2012 20:06:49

tyrtamos
Débutant(e) Qt
Inscription : 15-07-2012
Messages : 13

Re : valeur different de affichage ComboBox

Bonjour,

Je ne suis pas sûr d'avoir compris, mais au cas où, voilà un petit code d'essai qui affiche un message en correspondance avec le choix fait sur le combobox:

Hors ligne

#7 08-08-2012 21:46:54

PapaJaac
Administrateur Qt
Lieu : Bordeaux
Inscription : 08-12-2008
Messages : 1 701

Re : valeur different de affichage ComboBox

Je souhaiterais que dans ma liste aparaissent affichage1, affichage2 et affichage3

Ça, c'est bon en principe non ?

et que selon le choix

le choix de qui, où, quand, mis dans quelle variable ?

la valeur mise dans la table soit val1, val2 ou val3.

de quelle table parles-tu ?




Y'a des fois, je me demande vraiment... sad
Léa, est-ce que tu es bien consciente qu'on ne voit pas ton écran et qu'on ne lit pas dans tes pensées ??

En ligne

#8 12-08-2012 20:54:01

LeaB
Membre(e) Qt
Inscription : 03-07-2012
Messages : 16

Re : valeur different de affichage ComboBox

Salut,
merci d'essayer de m'aider.
A priori je ne me suis pas faite bien comprendre...
J'ai fait un formulaire sous Qt qui est ensuite utilisé sous QGIS. Le formulaire s'affiche lorsque l'utilisateur saisie une nouvelle entité et permet de lui faire saisir les attributs relatifs à cette nouvelle entité.
Dans ce formulaire j'ai entre autre des QComboBox qui me permettent d'afficher des listes déroulantes à l'utilisateur, celui-ci choisit donc la valeur de l'attribut au sein de la liste.
Les attributs sont gardés automatiquement dans une table sous QGIS : la table attributaire.
Pour l'instant les listes déroulants des QCombobox s'affichent bien et la valeur choisi par l'utilisateur est ensuite inscrite dans la table.
Ce que je souhaiterait c'est que la valeur rentrée dans la table soit différente de celle affichée à l'utilisateur pour qu'il choisisse. Cela me permettrai par exemple que à l'affichage de mon formulaire les valeurs proposées dans les listes déroulantes (des QCombobox) contiennent des accents mais que au moment ou la table attributaire est remplie je programme de façon a ce que soit gardé la chaine des caractères sans accents.

Léa

Hors ligne

#9 24-08-2012 13:45:47

postfred
Membre(e) Qt
Inscription : 24-08-2012
Messages : 4

Re : valeur different de affichage ComboBox

Bonjour Léa
pour les plugins dans QGIS , voici comment je pratique
comme l'a dit PapaJaac, "Une QComboBox stocke 3 valeurs dans chaque ligne : une icône, un texte, et une valeur quelconque (itemData, un QVariant), voire plusieurs si tu définis plusieurs rôles"

Construction de la liste déroulante :

Récupération de l'identifiant_base correspondant à la valeur sélectionnée dans le combo

En gros je récupère l'itemdata correspondant à l'index de QComboBox (identifié par ui.exploitationBox.currentIndex() dans mon cas)

Il y a peut être plus élégant, mais je suis un débutant de quelques jours seulement ;-)
bonne journée

Hors ligne

#10 24-08-2012 16:00:41

dergen
Webmaster Qt
Lieu : Meaux
Inscription : 20-03-2009
Messages : 2 232
Site Web

Re : valeur different de affichage ComboBox

Bonjour postfred.

À lire en premier !


Sans la liberté de blâmer, il n'est point d'éloge flatteur; et qu'il n'y a que les petits hommes qui redoutent les petits écrits !!!

- Beaumarchais -

Hors ligne

#11 29-08-2012 15:58:52

LeaB
Membre(e) Qt
Inscription : 03-07-2012
Messages : 16

Re : valeur different de affichage ComboBox

Merci PostFred!!

Hors ligne

Pied de page des forums


Sitemap QtFR