in reply to changing a widget's properties from a function

This sounds like a real beginner question, or else I don't understand what you are asking. Almost all widgets can have callbacks associated with them. When you enter the callback subroutine, you can adjust any widget property you want, as long as you know it's name. It's usually done with
$widgetname->configure(-this => 'that'); $someotherwidget->configure(-this => 'that'); $mw->configure(-this => 'that');
Each widget has it's own methods so you have to read it's man page. There are some standards in perldoc Tk::options. The trick is to find the name of the widget you want to change. Alot of code have "widgets with no-names", for example, in the following the buttons are anonymous, but in the second example, the buttons are actually named as a variable.
#!/usr/bin/perl use strict; use Tk; my $mw = MainWindow->new; for(0..4){ $mw->Button(-text => "Hello World$_", -command=>[\&change])->pack; } MainLoop; sub change { print "sub-input->@_\n"; my $caller = $Tk::widget; print "$caller "; print $caller->{'_TkValue_'},' '; my $text = $caller->cget('-text'); print "$text\n"; $caller->configure(-text=>"Hello Stranger"); } __END__
#!/usr/bin/perl use strict; use Tk; my $mw = MainWindow->new; my $b = $mw->Button(-text => "Hello World", -command=>[\&change])->pack(); my $l = $mw->Label(-text => 'hi')->pack(); MainLoop; sub change { $b->configure(-text=>"Hello Stranger"); $l->configure(-text=>'bye'); }

Replies are listed 'Best First'.
Re: Re: changing a widget's properties from a function
by Anonymous Monk on Jan 24, 2004 at 21:28 UTC
    Hi Zentara

    You are correct - i am kind of a beginner in Tk,
    so your answer was a great help to me !

    Thanks Very much !