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

Langage Perl Discussion :

Perl/Tk renseignement sur les checkbutton


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Août 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 9
    Par défaut Perl/Tk renseignement sur les checkbutton
    Bonjour,

    Je vais essayer d'expliquer ma question le plus clairement possible. Voila je développe une appli en perl/tk. Dans un onglet, j'ai plein de checkbutton je mets le code en dessous même si je pense pas que ça aide c'est rien d'extraordinaire

    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
    for ($i=0; $i<=28; $i++)
    	{$frame_mft[$i]=$notebook_install_tmf->Frame( -borderwidth => '1', -relief=>"$GLOB_K_RELIEF")->pack(-side => 'top', -fill => 'x');
    		for ($j=0; $j<5; $j++)
    	      	{$k =  $i + (29 * $j);
                     		if ( $k < 10 )
                     		{	$var_tmp = "tmf00$k" ;					$check_button_tmf[$i][$j]=$frame_mft[$i]->Checkbutton(-text=>"tmf00$k",-variable=>\$var_tmp,-font => "Arial 10 normal")->pack(-side => 'left',-expand=>'true', -anchor=>'n');
           				}
                     		if ( $k < 100 && $k >= 10 )
                     		{		  			$check_button_tmf[$i][$j]=$frame_mft[$i]->Checkbutton(-text=>"tmf00$k",-font => "Arial 10 normal")->pack(-side => 'left',-expand=>'true',-anchor=>'n');
                     		}
                     		if ( $k >= 100 )
                     		{  			$check_button_tmf[$i][$j]=$frame_mft[$i]->Checkbutton(-text=>"tmf00$k",-font => "Arial 10 normal")->pack(-side => 'left',-expand=>'true',-anchor=>'n');
                     		}
                    }
    	}
    Ce que je voudrais faire c'est : je selectionne les boutons que je veux et puis je clique sur valider et une procédure se lance. Je voudrais savoir comment je peux faire pour savoir quel checkbutton a été selectionné dans la fonction qui va lancer ma procédure. J'ai essayé avec l'option -variable mais comme je l'ai écrit ce sont 10 checkbutton qui sont selectionnés et pas un seul.

    En espérant avoit été clair

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Bonjour,

    pense à mettre ton code entre balises # la prochaine fois

    Voici un tout petit bout de code d'une appli Tk que j'ai réalisé il y a quelques temps :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $mwBrPdf = $mwligne5->Checkbutton(
    	-text=>"PDF",
    	-command	=> 	sub{$ValuePdfc = 0;
    						$ValuePdfi = 0;
    						$ValueCopie = 0;
    						$ValueSupprime = 0},
    	-variable=>\$ValuePdf,
    )->pack(-side => 'left');
    C'est juste l'un des nombreux Checkbutton utilisés par mon appli Tk.

    2 choses sont importantes à remarquer :

    - l'option -variable qui fait pointer la case à cocher vers la variable $ValuePdf. Si case cochée, $ValuePdf vaut 1, 0 si décochée.

    - l'option -command qui pointe, elle, vers une fonction. Dans mon cas à moi, il y a 4 autres cases à cocher qui pointent chacune vers une variable. Les variables en question sont clairement nommées : $ValuePdf, $ValuePdfi, $ValueCopie et $ValueSupprime. Quand l'utilisateur coche la case dont j'ai reproduit le code Perl ci-dessus, il est impératif que les 4 autres cases soient décochées.

    Alors, pour expliquer en quoi mes 2 exemples pourraient te servir : 1), tu sais comment récupérer toutes les cases étant cochées, il te suffit de raccorder à ton bouton "Valider" une fonction qui récupèrent TOUTES les variables pointées par tes cases à cocher. Pour toutes les variables qui vaudront 1 lorsque tu les testeras, tu sauras quoi faire ensuite et enfin pour le 2), si tu as besoin de sécuriser ton appli (exemple : si une case à cochée particulière est cochée, la case bidule et la case truc ne doivent pas être cochées ou vice versa), je t'ai donné un exemple pour pallier à ces besoins là.

    N'hésite pas à poser d'autres questions si besoin et si je ne suis pas clair, n'hésite pas

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Hum... A priori, ce que vous voulez c'est plutôt des Radiobutton, les Checkbutton ne sont pas supposé influer les uns sur les autres sauf dans des cas particuliers. Et bien sûr il y a bien plus simple que d'écrire une dizaine de fonctions utilitaires pour désélectionner les autres Radiobutton quand on en sélectionne un...
    Voici un exemple qui crée une série (cinq ici) de Radiobutton interdépendants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my $which_button = -1;
    my @text_buttons = qw(TexteDuBouton1 TexteDuBouton2 etc hello bye);
    for my $but (0..$#text_buttons) {
      my $rad = $mw->Radiobutton( -text => $tex_buttons[$but], 
                                -value => $but,
                                -variable => \$which_button,);
      $rad->pack();
    }
    $which_button contiendra le numéro du bouton sélectionné, on aurait aussi bien pu lui faire contenir le texte de ce bouton (en changeant -value).

    --
    Jedaï

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Hum... A priori, ce que vous voulez c'est plutôt des Radiobutton, les Checkbutton ne sont pas supposé influer les uns sur les autres sauf dans des cas particuliers. Et bien sûr il y a bien plus simple que d'écrire une dizaine de fonctions utilitaires pour désélectionner les autres Radiobutton quand on en sélectionne un...
    Chacun son point de vue. Mon programme fait exactement ce qu'on lui demande et ces quelques fonctions utilitaires n'ont pas pris 107 ans à être codées non plus. Et le tout forme un script sécurisé qui évite bien des fausses manips, c'était là le but principal...

    Bien sûr, peut-être que les besoins de Misaki se suffiraient de Radiobuttons ?

  5. #5
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par Arioch Voir le message
    Chacun son point de vue. Mon programme fait exactement ce qu'on lui demande et ces quelques fonctions utilitaires n'ont pas pris 107 ans à être codées non plus. Et le tout forme un script sécurisé qui évite bien des fausses manips, c'était là le but principal...
    Il me semble que l'emploi des Radiobutton tel qu'exposé ci-dessus est nettement plus simple pour faire une série de bouton dont un seul peut-être sélectionné à la fois et complètement sûr, bien sûr si tes besoins étaient plus sophistiqués, les Checkbuttons étaient peut-être plus appropriés et après tout l'important du point de vue de l'utilisateur est que le programme marche, quelle que soit la façon dont il le fait. Et Perl offre souvent de multiple voies pour parvenir à la solution, c'est bien ce que TIMTOWDI signifie.

    --
    Jedaï

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 606
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Il me semble que l'emploi des Radiobutton tel qu'exposé ci-dessus est nettement plus simple pour faire une série de bouton dont un seul peut-être sélectionné à la fois et complètement sûr, bien sûr si tes besoins étaient plus sophistiqués, les Checkbuttons étaient peut-être plus appropriés et après tout l'important du point de vue de l'utilisateur est que le programme marche, quelle que soit la façon dont il le fait. Et Perl offre souvent de multiple voies pour parvenir à la solution, c'est bien ce que TIMTOWDI signifie.

    --
    Jedaï
    Oui mais relis bien ce que veut faire notre bonhomme : Ce que je voudrais faire c'est : je selectionne les boutons que je veux et puis je clique sur valider et une procédure se lance.

    Donc un système où, en cliquant sur 1 bouton, tous les autres se désactivent, n'est pas la solution à envisager.

    Et laisse Tim Towdi tranquille, je ne sais même pas qui c'est

Discussions similaires

  1. Renseignement sur les lib d'origine
    Par mc_fly dans le forum Langage
    Réponses: 9
    Dernier message: 11/07/2006, 15h08
  2. demande de renseignements sur les classes
    Par altadeos dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2006, 15h59
  3. Renseignements sur les requêtes
    Par Virgile59 dans le forum Access
    Réponses: 1
    Dernier message: 07/02/2006, 20h09
  4. Renseignement sur les "types" d'asm
    Par Coussati dans le forum Assembleur
    Réponses: 4
    Dernier message: 10/01/2006, 14h28
  5. Réponses: 14
    Dernier message: 10/11/2005, 11h14

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