Problème avec les boutons de perl Tk
Envoi de jkevin2 le 02 Septembre 2005 17:51:31:
Salut , suis novice dans la programmation avec Tk, j'ai besoin de faire une interface utilisateur avec trois boutons start stop cancel, lorsque j'appuie sur start une référence à une boucle for est lancée; mon problème est de pouvoir arrêter le déroulement de la boucle à tout moment. A l'état actuel dès que je clique sur le start j'ai pas le focus avant la fin de la boucle.Voici un exemple de ce que je veux(le sleep doit retarder l'affichage de façon aléatoire et l'on doit arrêter cet affichage a tot moment) :
/usr/bin/perl -w use Tk; #Paramètres d'entrée $depart="";# depart_boucle $fin="";#fin_boucle #++++++++++++++++++++ #Programme Principal #++++++++++++++++++++ $fen=MainWindow->new(-title=>HP_SCAN); $texte=$fen->Label(-textvariable=>\$val)->pack; $texte->Label(-text=>"Problème-Aide")->pack; $val=1;
#Creation d'une liste $lb=$fen->Listbox()->pack; $lb->insert(0," WWW"); $lb->insert(1," Forum"); $lb->insert(2," COM");
#Creation de 2 cadres
#Cadre1 $frame1=$fen->Frame()->pack(-fill=>'both'); $case1=$frame1->Label(-text=>"Depart")->pack(-side=>"top",-fill=>'x'); $case1->Entry(-textvariable=>\$depart,-width=>5)->pack(-side=>"right"); $case2=$frame1->Label(-text=>"Fin")->pack(-side=>"bottom",-fill=>'x'); $case2->Entry(-textvariable=>\$fin,-width=>5)->pack(-side=>"right");
#Cadre2 $frame2=$fen->Frame()->pack; $frame2->Button(-text=>"Start",-command=>\&HP)->pack(-fill=>'x',-side=>"left"); $frame2->Button(-text=>"Stop",-command=>\&SP)->pack(-fill=>'x',-side=>"left"); $frame2->Button(-text=>"Cancel",-command=>sub{exit})->pack(-fill=>'x',-side=>"left");
MainLoop; sub SP{print "OK Merci\n";}
sub HP{for($index=$depart;$index<=$fin;$index++) {print "C'est un test!\n"; @tab=(2..4); sleep $tab[rand@tab]; } }
Merci pour votre attention!
Réponses:
Répondre
|

|