Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: making a GUI for a web client

by dannoura (Pilgrim)
on Jul 14, 2004 at 11:38 UTC ( #374269=note: print w/ replies, xml ) Need Help??


in reply to Re: making a GUI for a web client
in thread making a GUI for a web client

Thanks for the reply. I may be going the wrong way about this but using the code below doesn't update the label text, it produces another label.

#! c:\perl\bin -w use strict; use Tk; my $mw=new MainWindow; $mw->minsize(qw(250 150)); $mw->title(" Tk Test 1 "); my $body=$mw->Frame(-background=>'cyan')->pack(side=>'bottom', -fill=> +'x'); my $fr1=$body->Frame(-background=>'magenta')->pack(side=>'top', -fill= +>'x'); my $txt='hi'; $fr1->Label(-textvariable=>\$txt, -background=>'yellow', -foreground=> +'red')->pack(-fill=>'y'); sleep 5; change('foo', $fr1, $mw); sleep 5; change('bar', $fr1, $mw); MainLoop(); sub change { my ($txt, $fr1, $mw)=@_; $fr1->Label(-textvariable=>\$txt, -background=>'yellow', -foregrou +nd=>'red')->pack(-fill=>'y'); $mw->update; }

-----------------------------------

Any comments about coding style are welcome.


Comment on Re^2: making a GUI for a web client
Download Code
Re^3: making a GUI for a web client
by roju (Friar) on Jul 14, 2004 at 14:38 UTC

    I'm not familiar with Tk, but I think he was trying to get you to do something more like this:

    #! c:\perl\bin -w use strict; use Tk; my $mw=new MainWindow; $mw->minsize(qw(250 150)); $mw->title(" Tk Test 1 "); my $body=$mw->Frame(-background=>'cyan')->pack(side=>'bottom', -fill=> +'x'); my $fr1=$body->Frame(-background=>'magenta')->pack(side=>'top', -fill= +>'x'); my $txt='hi'; $fr1->Label(-textvariable=>\$txt, -background=>'yellow', -foreground=> +'red')->pack(-fill=>'y'); sleep 5; change('foo', $fr1, $mw); sleep 5; change('bar', $fr1, $mw); MainLoop(); sub change { my ($new_txt, $fr1, $mw)=@_; $txt = $new_txt $fr1->pack(-fill=>'y'); $mw->update; }

    Again, I'm not a Tk guy, but I think the $txt variable gets tied to the label, so you just want to update the variable and get the label to refresh itself.

    Update: Just tested it here, and yup, it replaces the old label.

    Update 2: Fixed code formatting.

      Thanks! That works.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (16)
As of 2014-10-21 13:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (103 votes), past polls