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 Perl Discussion :

Récupération des éléments sélectionner dans une liste


Sujet :

Interfaces Graphiques Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut Récupération des éléments sélectionner dans une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    # lire tous les elements selectionner dans la boite de liste 1
    my @indices_enz_select;
     
    my $bouton1vers2 = $main->Button(
        -text    => '>>',
        -command => sub {
     
            # lire element selectionner dans la boite de liste 1
            my @elt_selectionnes = $liste1->curselection();
     
    	# ajout des éléments dans @indices_enz_select
    	push @indices_enz_select, @elt_selectionnes;
     
            foreach my $elt1 (@elt_selectionnes) {
     
                # Déplacement dans la liste 2
                $liste2->insert( 'end', $liste1->get($elt1) );
     
                # suppression de la liste 1
                $liste1->delete($elt1);
            }
        },
    );
    my $bouton2vers1 = $main->Button(
        -text    => '<<',
        -command => sub {
     
            # lire element selectionner dans la boite de liste 1
            my @elt_selectionnes = $liste2->curselection();
     
    	# suppression des éléments dans @indices_enz_select
    	map {delete $indices_enz_select[$_];} @elt_selectionnes;	
     
            foreach my $elt2 (@elt_selectionnes) {
     
                # Déplacement dans la liste 1
                $liste1->insert( 'end', $liste2->get($elt2) );
     
                # suppression de la liste 2
                $liste2->delete($elt2);
            }
        },
    );
    J'aimerais récupérer dans @indices_enz_select les indices de la liste des éléments sélectionnés. Le problème est que les indices de @elt_selectionnes changent à chaque passage par les boutons et donc ne me permettra pas de retrouver au final les valeurs associées aux éléments sélectionnés. La solution serait donc à mon avis de récupérer les valeurs directement, est-ce la meilleure solution?


    Merci pour votre aide,

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    J'essaie de récupérer la liste des valeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    # lire tous les elements selectionner dans la boite de liste 1
    my @enz_select;
     
    my $bouton1vers2 = $main->Button(
        -text    => '>>',
        -command => sub {
     
            # lire element selectionner dans la boite de liste 1
            my @elt_selectionnes = $liste1->curselection();
     
    	# ajout des éléments dans @enz_select
    	map { push @enz_select, $liste1->get($_) } @elt_selectionnes;
     
    	foreach my $elt1 (@elt_selectionnes) {
     
    		# Déplacement dans la liste 2
    		$liste2->insert( 'end', $liste1->get($elt1) );
     
    		# suppression de la liste 1
    		$liste1->delete($elt1);
            }
        },
    );
    my $bouton2vers1 = $main->Button(
        -text    => '<<',
        -command => sub {
     
            # lire element selectionner dans la boite de liste 1
            my @elt_selectionnes = $liste2->curselection();
     
     
            foreach my $elt2 (@elt_selectionnes) {
     
    		# Déplacement dans la liste 1
    		$liste1->insert( 'end', $liste2->get($elt2) );
     
    		# suppression de la liste 2
    		$liste2->delete($elt2);
     
    		# suppression des éléments dans @enz_select
    		delete $enz_select[%i] , firstidx { $_ eq $liste2->get($elt2) } @enz_select;
     
            }
        },
    );
    Il y a un problème avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		delete $enz_select[%i] , firstidx { $_ eq $liste2->get($elt2) } @enz_select;
    car %i n'est pas défini. On trouve pourtant sur le CPAN :
    firstidx BLOCK LIST
    first_index BLOCK LIST

    Returns the index of the first element in LIST for which the criterion in BLOCK is true. Sets $_ for each item in LIST in turn:

    my @list = (1, 4, 3, 2, 4, 6);
    printf "item with index %i in list is 4", firstidx { $_ == 4 } @list;
    __END__
    item with index 1 in list is 4
    Quelle variable contient l'index récupéré? Merci.

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    sprintf :
    %i a synonym for %d
    J'ai trouvé la signification mais ça ne résout pas mon problème.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Par défaut
    Tu utilises quel package de List ?
    On en retrouve plusieurs sur CPAN du coup je ne sais pas par où commencer.

  5. #5
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par 50Nio Voir le message
    Tu utilises quel package de List ?
    On en retrouve plusieurs sur CPAN du coup je ne sais pas par où commencer.
    Merci de t'intéresser à mon problème. J'ai essayé avec List::MoreUtils et avec List::AllUtils mais aucun des 2 ne fonctionne.

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    J'espère que tu ne confonds pas indice à la TK et indice de tableau. Ce n'est pas pareil.

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/07/2010, 15h52
  2. Réponses: 1
    Dernier message: 07/03/2008, 08h49
  3. Réponses: 7
    Dernier message: 27/05/2007, 16h46
  4. [Débutant] copier l'élément sélectionner dans une liste
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/04/2007, 21h49

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