http://www.perlmonks.org?node_id=11147023


in reply to Change Color on Button Release

While this appears to work, I'm not sure it's the "right" way.
In fact, I'm tempted to say that having your program press buttons by itself is bad UI. It takes control away from the user and can surprise and irritate him.

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11147002 use warnings; use Tk; my $mw = new MainWindow; my $label = $mw -> Label(-text=>"Hello World") -> pack(); my $button = $mw -> Button(-activebackground => 'red', -activeforegrou +nd => 'black', -text => "Quit" ); $button->bind('<ButtonPress-1>' => \&myexit); $button->bind('<ButtonRelease-1>' => \&myexit2); $button->pack; $button->eventGenerate('<ButtonPress-1>'); $button->eventGenerate('<ButtonRelease-1>'); $mw->after(5000 => \&doit); $mw->after(10000 => \&doit2); sub doit { $button->focus; $button->eventGenerate('<ButtonPress-1>'); } sub doit2 { $button->focus; $button->eventGenerate('<ButtonRelease-1>'); } MainLoop; sub myexit { print time."\n"; } sub myexit2 { $button->configure(-background => "gray", -foreground => "black"); $button->eventGenerate('<Leave>'); # NOTE print time." 2\n"; }