Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: making a GUI for a web client

by dannoura (Pilgrim)
on Jul 14, 2004 at 11:38 UTC ( [id://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.

Replies are listed 'Best First'.
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
Domain Nodelet?
Node Status?
node history
Node Type: note [id://374269]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2024-04-19 19:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found