Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Change Color on Button Release

by tybalt89 (Monsignor)
on Sep 20, 2022 at 18:16 UTC ( [id://11147023]=note: print w/replies, xml ) Need Help??

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; # 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"; }

Replies are listed 'Best First'.
Re^2: Change Color on Button Release
by PilotinControl (Pilgrim) on Sep 20, 2022 at 22:28 UTC

    This is part of an automated script and your solution works perfectly! I guess I was missing the <leave> portion of the code which was not in the Oreilly book. Thanks again!

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11147023]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-06-18 00:25 GMT
Find Nodes?
    Voting Booth?

    No recent polls found

    erzuuli‥ 🛈The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.