in reply to changing a widget's properties from a function
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.$widgetname->configure(-this => 'that'); $someotherwidget->configure(-this => 'that'); $mw->configure(-this => 'that');
#!/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 |