Par exemple, dans le script suivant:Comment activer un élément de menu contextuel désactivé lorsque la sélection se produit dans un Perl Tk gui?
use Tk;
my $mw = new MainWindow;
my $t = $mw->Scrolled("Text")->pack;
my $popup = $mw->Menu(
-menuitems => [
[
Button => 'Copy Selected',
-state => "disabled",
-command => sub {$t->clipboardColumnCopy}
],
]
);
$t->menu($popup);
MainLoop;
Comment puis-je dire lorsque la sélection se trouve que je peux utiliser le code suivant
$popup->entryconfigure(1, -state=>'normal');
changer l'état de l'élément de menu?
MISE À JOUR:
Un grand merci à @Chas et @gbacon :)
Je pense que je peux peut-être combiner les deux bonnes réponses:
$t->bind(
"<Button1-ButtonRelease>",
sub {
local [email protected];
my $state = defined eval { $t->SelectionGet } ?
"normal" : "disable";
$popup->entryconfigure(1, -state => $state)
}
);
Owens, merci beaucoup! Je n'ai jamais pensé utiliser la liaison d'événement, mais cela fait très bien l'affaire. Merci :) – Mike