[Il semblerait que le problème décrit ci-dessous soit un bug dans la librairie Tk]
Bonjour,
Voici quelques heures que je passe sur ces problèmes: rien n'y fait. Dans le code qui suit:
1/ la -vcmd n'est plus invoquée à partir du moment où elle a retourné une fois 0;< Il suffit de reconfigurer -validate => "all" a posteriori;
2/ la -vcmd n'empêche pas la valeur de la spinbox de changer;
3/ -invcmd n'est jamais appelé;
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 #!/usr/bin/perl -w use strict; use Tk; my $mw = MainWindow->new(-title => "spinbox test"); my $spinbox1 = $mw->Spinbox( -width => 2, -value => [1 .. 100], -validate => "all", )->pack; $spinbox1->configure(-vcmd => [\&validate1, $spinbox1]); $spinbox1->configure(-invcmd => sub {print STDERR "oops" }); sub validate1 { my ($spinbox, $new, $discard, $old) = @_; return 0 if $new == 5; print STDERR "$spinbox: $old -> $new\n"; return 1; } MainLoop();J'ai essayé de vérifier que l'option -validate redevenait bien "all" après chaque invocation de la -vcmd, mais sans succès.
Une idée?
Merci de votre aide!
Partager