IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

Récupérer les items d'une listbox [Débutant]


Sujet :

Interfaces Graphiques

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut Récupérer les items d'une listbox
    Bonjour,

    voilà, je débute en Matlab, donc soyez indulgent lol

    Je créé un ptit GUI.
    J'ai une listbox, j'ai réussi à le remplir avec des 'string'

    Maintenant, j'aimerai bien pouvoir récupérer la string correspondant à l'item sélectionné par l'utilisateur...

    j'ai vu qu'on pouvait récupérer le numéro de l'item avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item = get(handles.maListBox, 'Value');
    j'ai essayé de faire un maListBox(item), mais apparemment, ça ne marche pas ...

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    item = get(handles.maListBox, 'String')
    je vais récupérer tous les items à la suite non??
    comment faire pour en extraire l'item qui m'intéresse?

    Merci pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu as tous les élements, il te suffit de les réunir

    Pour commencer, tu récupères la liste avec Liste = get(handles.maListBox, 'String');.
    Puis tu récupères l'indice de l'élément sélectionné indice = get(handles.maListBox, 'Value');.
    Enfin, tu combines les deux: Element_selectionne = Liste{indice};.

    Remarque: ces lignes étant le plus souvent dans le callback, tu as la possibilité d'utiliser l'entrée hObject de la fonction callback au lieu de handles.maListBox.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Hum, ça n'a pas l'air de marcher ...

    quand je passe en debug, en pas à pas,
    ça ne passe pas au niveau du Element_selectionne = Liste{indice}; ...

    quand j'ai rentré les items dans ma listbox, j'ai concaténé toutes les chaines en les séparant avec un '|', et ensuite j'ai fait un set...
    est-ce que ça peut venir de là??
    c'est pitêtre pas comme ça qu'il faut s'y prendre

    Sinon, merci pour ta remarque pour le hObject
    j'y penserai à l'occas', mais là en fait, je suis dans le callback d'un pushbutton, donc je suppose que dans cette méthide le hObject se réfère au pushbutton...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par melleb Voir le message
    Hum, ça n'a pas l'air de marcher ...
    ça ne passe pas au niveau du Element_selectionne = Liste{indice}; ...
    J'avais un chance sur deux
    Citation Envoyé par melleb Voir le message
    quand j'ai rentré les items dans ma listbox, j'ai concaténé toutes les chaines en les séparant avec un '|', et ensuite j'ai fait un set...
    est-ce que ça peut venir de là??
    Ca vient bien de là, et donc Element = Liste(indice,:);.
    En général, préfère le faire sous forme de cells, c'est plus pratique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.maListBox,'string',{'element1','element2','elementn'})
    Citation Envoyé par melleb Voir le message
    mais là en fait, je suis dans le callback d'un pushbutton, donc je suppose que dans cette méthide le hObject se réfère au pushbutton...
    Oui en effet, et dans ce cas, il te faut bien appeler les autres objets implicitement avec leur noms respectifs.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Yes!! Nickel, ça marche
    Merci beaucoup!


    Par contre, concernant ta méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set(handles.maListBox,'string',{'element1','element2','elementn'})
    il faut connaître le nombre d'éléments? (en fait, dans mon cas, le nombre d'éléments est une variable...)

    ou bien alors, comment tu fais pour remplir un "array" avec un nombre de cells qui peut varier??
    (sorry, j'ai sûrement pas le langage adapté, mais j'en profite pour m'instruire un ptit peu en même temps)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Non c'est juste un exemple, tu peux très bien faire passer une variable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Variable = {'element1','element2','element3'};
    Variable{4} = 'element4'; % Ou Variable(4) = {'element4'};
    set(handles.maListBox,'string',Variable)
    Pour en savoir plus sur les cells

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Par défaut
    Ok je note!
    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les items d'une ListBox Multiselect
    Par Artza dans le forum Composants FMX
    Réponses: 2
    Dernier message: 19/02/2014, 17h35
  2. grouper les items d'une listbox.
    Par maa dans le forum Silverlight
    Réponses: 1
    Dernier message: 27/03/2008, 18h33
  3. [VBA-E] compter les item d'une listbox
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/07/2006, 15h29
  4. Réponses: 5
    Dernier message: 22/02/2006, 17h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo