Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Tk: listen for event generated anywhere in program

by zejames (Hermit)
on Dec 14, 2004 at 09:45 UTC ( #414648=note: print w/replies, xml ) Need Help??


in reply to Tk: listen for event generated anywhere in program

From the Tk bind documentation :

...

$widget->bind(tag,sequence,callback);

...

If a tag is the name of an internal window the binding applies to that window.

If the tag is the name of a toplevel window the binding applies to the toplevel window and all its internal windows.

If the tag is the name of a class of widgets, such as Tk::Button, the binding applies to all widgets in that class;

If tag has the value all, the binding applies to all windows in the application.

So just use the first argument of the bind call :

#!/usr/bin/perl use Tk; use strict; my $app = new MainWindow; my $entry = $app->Entry()->pack(); $entry->bind('all', '<<customEvent>>' => \&respondToEvent); $app->Button(-text => 'gen event by app', -command => [\&sendEvent, 0])->pack(); $app->Button(-text => 'gen event by label', -command => [\&sendEvent, 1])->pack(); MainLoop; sub sendEvent { if(@_[0]) { # have entry generate event - this works $entry->eventGenerate('<<customEvent>>'); } else { # have mainwindow generate event - this produces nill $app->eventGenerate('<<customEvent>>'); } } sub respondToEvent { print "Responding to Event!"; }

--
zejames

100th post ! Champaign !

Replies are listed 'Best First'.
Re^2: Tk: listen for event generated anywhere in program
by blueberryCoffee (Scribe) on Dec 14, 2004 at 10:12 UTC
    Thank you, thankyou, and thanks to you. I had spent all my time going over the event documentation, thinking it was the way the event was called rather than the actual binding. The answer was so easy, I can't believe I missed that. Thanks again.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (3)
As of 2020-10-31 05:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (286 votes). Check out past polls.

    Notices?