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');
}
|