vr786 has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks, I am facing problem with resetting fields.Here I am displaying two radio buttons along with one corresponding values containing one list-box,the problem is that whenever i press reset button the application should reset all the fields like initial state. Can any one please help me how to do it. I have tried with killing the application and re executing it again but it doesn't sounds good for me.

#!/usr/bin/perl -w use Tk; use strict; use warnings; use Tk::LabFrame; use Tk::JPEG; use Tk::PNG; my $mw = MainWindow->new; $mw -> geometry ("400x400+100+120") ; $mw -> CmdLine; my $chk = 0; my @GUI_List; my $var; my $reset; $reset = $mw -> Button(-text => "Reset", -state => 'normal',-command = +> \&reset)->pack(); $reset -> place ( -x => 160, -y => 200 ); my $f1 = $mw -> LabFrame(-label=> "Select one Test",-font=> 'ukai',-la +belside => "acrosstop")->pack(); my $s300 = $f1->Radiobutton(-text=>"TEST1",-value=>"do_1",-indicator=> +1,-variable=>\$chk,-font=>'ukai 11',-command=>\&do_1)->pack(); $s300->configure(-state); my $s310 = $f1->Radiobutton(-text=>"TEST2",-value=>"do_2",-indicator=> +1,-variable=>\$chk,-font=>'ukai',-command=>\&do_2)->pack(); $s310->configure(-state); $f1 -> place ( -x => 40 , -y => 50, -width=>"140", -height => "100" ); my $f2 = $mw -> LabFrame(-label => "Selet One",-font=> 'ukai',-labelsi +de => "acrosstop")->pack(); my @INP_List = (qw/TES0 TES1 TES2 TES3 TES4 TES5 TES6 TES7 TES8 TES9/) +; my $lb = $f2 -> Scrolled("Listbox", -scrollbars => "e",-selectmode => +"extended",-font=> 'ukai',-activestyle => "dotbox")->pack(); $lb -> bind('<Double-1>'=> sub { my $temp = $_[0]->get($_[0]->curselection),; print "$temp\n" }, ); $f2 -> place ( -x => 220 , -y => 50, -width =>"160", -height => "100") +; MainLoop; sub do_1 { if ($chk eq "do_1" ) { $lb->delete(0,'end'); @GUI_List = @INP_List[0,1,2,3,4]; $lb->insert('end',@GUI_List); #print "@GUI_List\n"; } } sub do_2 { if ($chk eq "do_2") { $lb->delete(0,'end'); @GUI_List = @INP_List[5,6,7,8,9]; $lb -> insert('end', @GUI_List); #print "@GUI_List\n"; } } sub reset { $mw->update; }

Replies are listed 'Best First'.
Re: How to reset the fields in perl tk
by Marshall (Canon) on Jan 11, 2011 at 10:09 UTC
    sub reset { $s300->deselect; $s310->deselect; $lb->delete(0,'end'); $mw->update; }