OVH Cloud OVH Cloud

[Tk] bind dynamique ?

1 réponse
Avatar
jeanpierre.vidal
En fait j'ai trouvé une solution à ma question, après avoir galéré
quelque temps. Je cherche simplement à savoir s'il y a mieux, ou plus
simple, ou plus élégant, ou plus...

La question : dans une Tk::Entry ($saisie), lier la touche "Entrée" à
une routine (sub1 | sub2) en fonction de la valeur d'une variable
($num).

Le code :
#!perl -w
use strict;
use Tk;

my $num = 0;
my @sp = (\&sub1, \&sub2);

my $mw = MainWindow->new;

my $saisie = $mw->Entry->pack;
$saisie->focus;
$saisie->bind(
"<Key-Return>",
sub { &{$sp[$num]} }
);

MainLoop;

sub sub1 {
print "sub1 num=$num\n";
$num = 1;
}

sub sub2 {
print "sub2 num=$num\n";
$num = 0;
}

Je n'ai pas trouvé mieux que ça, merci pour vos réponses.
Jean-Pierre

1 réponse

Avatar
Julien PLEE
Bonjour,

&$sp[$num] au lieu de sub { &{$sp[$num]} } ne marche pas ?


Julien