Bonjour,
J'utilise Tk et Perl. J'ai crée une interface utilisateur. Ma fenêtre principale en appelant un sous programme crée une fenêtre fille contenant un caneva et un potentiomètre. Dans ce caneva est dessiné une échelle. En fonction de la valeur du potentiomètre, l'échelle prend une graduation plus ou moins grande selon ce qui est demandé par l'utilisateur.
J'ai crée une un sous programme à l'intérieur de ce sous programme qui s'exécute lors de la modification de la valeur du potentiomètre.
Donc, en faisant varié le potentiomètre, on fait apparaitre une nouvelle graduation. Le problème est que les valeurs de l'ancienne échelle, restent affichées et se superposent à celles de la nouvelle...ce qui devient vite illisible. J'aimerais savoir comment effacer les valeurs de l'exécution précédente de ma fonction "ModifierEchelle" avant que les nouvelles valeurs s'affichent.
J'ai en message d'erreur:
Merci,Variable "$caneva" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 361.
Variable "$Genome_x1" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 361.
Variable "$Genome_y2" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 361.
Variable "$DecalerBas" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 361.
Variable "$Graduation" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 362.
Variable "$LongueurGenome" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 364.
Variable "$Taille_Genome" will not stay shared at P:\Perl\scripts\Tk\Choix.pl line 364.
Jasmine,
structure:
-----------
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
46 use strict; use warnings; use Tk ; # Fenêtre principale my $fenetre = new MainWindow ( ) ; ... MainLoop ( ) ; sub EffectuerAlignement { # fenêtre d'alignement #------------------------- my $fenetre_alignement = $fenetre ->Toplevel; $fenetre_alignement->title('Alignement'); .... # bouton ChangerGraduation my $Echelle_Graduation = $fenetre_alignement -> Scale ( -from => 0 , -to => 20 , -resolution => 1 , -label => 'Graduation' , -orient => 'horizontal', -command => \&ModifGraduation, -variable => \$Graduation ) ; sub ModifGraduation { # zéro $caneva ->createText($Genome_x1, ($Genome_y2 + $DecalerBas), -text => 0 , -fill => "blue", -anchor => "w"); for (my $i = 1; $i<= $Graduation; $i++) { $caneva ->createText(($Genome_x1 + ($LongueurGenome/$Graduation * $i)) , ($Genome_y2 + $DecalerBas), -text => int($Taille_Genome/$Graduation * $i), -fill => "blue", -anchor => "w"); } } }
Partager