Bonjour,
Je n'arrive pas à utiliser bind avec les boutons créés avec le module ColoredButton.
J'ai besoin de distinguer deux click différents sur le bouton, ça fonctionne bien avec un bouton standard mais pas avec ColoredButton, quelqu'un aurait-il une solution ?
merci d'avance
Voir programme ci-dessous pour exemple :
#!/usr/bin/perl -w
####-----------------------------------
### File : .pl
### Author : DM
### Purpose :
### Version : 1.0 2017-12-10
####-----------------------------------
use strict;
use Tk;
use Tk::LabFrame;
use Tk::ColoredButton;
sub callbackBouton1 {
print $_[1],"\n";
}
sub callbackBouton2 {
print "Colored Button 2 appel par Command\n";
}
sub callbackBouton3 {
print $_[1],"\n";
}
my $window = MainWindow->new(-background => '#000000');
my $frameGene = $window -> Frame(
-height => 365,
-width => 365,
-background => '#000000'
)-> pack(
-side => 'left',
-fill =>'x'
);
my $BoutonMenu1 = $frameGene-> Button(
-text => "Bouton classique",
) -> place (
-bordermode => 'outside',
-x => 10 ,
-y => 20 ,
-width => 130,
-height => 20
);
$BoutonMenu1->bind('<ButtonRelease-1>',[\&callbackBouton1,"bouton 1 simple click"]);
$BoutonMenu1->bind('<ButtonRelease-3>',[\&callbackBouton1,"bouton 1 click droit"]);
my $BoutonMenu2 = $frameGene-> ColoredButton(
-text => "Colored button 1",
-gradient => { -start_color => '#99CCCC', -end_color => '#999933', -type => 'corner_left' },
-activegradient => { -start_color => 'white', -end_color => 'black', -type => 'corner_right' },
-command => sub {callbackBouton2},
) -> place (
-bordermode => 'outside',
-x => 10 ,
-y => 50 ,
-width => 130,
-height => 20
);
my $BoutonMenu3 = $frameGene-> ColoredButton(
-text => 'Colored button 3',
-gradient => {
-start_color => '#FFFFFF',
-end_color => '#E9C7CB',
-type => 'corner_right',
-start => 10 },
-activegradient => {
-start_color => '#E99CBB',
-end_color => '#0123C8',
-type => 'mirror_vertical',
-start => 10 },
)-> place (
-bordermode => 'inside',
-x => 10,
-y => 80,
-width => 130,
-height => 20 );
$BoutonMenu3->bind('<ButtonRelease-1>',[\&callbackBouton3,"bouton 3 simple click"]);
$BoutonMenu3->bind('<ButtonRelease-3>',[\&callbackBouton3,"bouton 3 click droit"]);
MainLoop;
Partager