Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: How to change a Tk object's property from a thread

by jimicarlo (Initiate)
on Aug 04, 2011 at 20:18 UTC ( [id://918644]=note: print w/replies, xml ) Need Help??


in reply to How to change a Tk object's property from a thread

Tk already has "threads" :-S try this:
use Tk; my $mw = new MainWindow(); my $button = $mw->Button(-text => "HEY")->pack(); $mw->after(1,\&thread_sub); # after 1 ms, calls thread_sub # it'll run like a thread, but isn't really! # See http://www.foo.be/docs/tpj/issues/vol1_3/tpj0103-0006.html MainLoop(); sub thread_sub { for (my $i=0; $i<10_000_000; $i++) { # DO NOTHING. LET THE TIME BE TIME } # CHANGE BUTTON'S TEXT PROPERTY TO "hey" HERE $button->configure(-foreground=>'red'); }
It's a weird example though... what were you planning on doing? Do you really need threads or would Tk timeslicing do?

Replies are listed 'Best First'.
Re^2: How to change a Tk object's property from a thread
by jimicarlo (Initiate) on Aug 04, 2011 at 20:25 UTC
    This might also be useful: http://www.perlmonks.org/bare/?node_id=732294
      This had exactly what I needed, thank you!
Re^2: How to change a Tk object's property from a thread
by santi_h87 (Novice) on Aug 04, 2011 at 20:27 UTC
    Thanks jimmi! What I want to do is have a udp socket receive packets from another udp socket in a separate thread (otherwise the GUI freezes), and when the socket receives the message "STOP", then it would disable the Disconnect button. Your code works well but it freezes the GUI when the thread is running. Thanks for your answer though!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2024-03-19 02:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found