in reply to Re: treat widget when resizing window
in thread treat widget when resizing window

Thanks for your help.
It really does work. But I'd like to know why also. In your code, -expand and fill options seem to be key to resize automatically. According to Tk manual, expand option causes the allocation rectangle to fill the remaining space available in the window or Frame, and fill option causes the widget to fill the allocation rectangle in the specified direction. I've tried some piece of code as below:
# your code, absolutly works. #!/usr/bin/perl use Tk; my $mw = MainWindow->new(); $left_frame = $mw->Frame->pack(qw(-fill both -expand 1)); $bottom_frame = $left_frame->Frame->pack(qw(-side bottom -expand 1 -fi +ll x)); $left_frame->Label(-text => "Perl Chat Client v$VERSION") ->pack(-side => 'top', -anchor => 'nw', ); $status = $left_frame->Text (-width => 40, -height => 30, -wrap => 'word')->pack(qw(-expand 1 -f +ill both)); #$status->tagConfigure(section, # -font => '-adobe-helvetica-bold-r-normal--14-140-75-75-p-82-iso +8859-1'); $status->bind('<Double-1>', \&pick_word); $bottom_frame->Label(-text => 'Global Message:')->pack(qw(-side left - +anchor s)); $gm_quick = $bottom_frame->Entry (-width => 26)->pack(qw(-side left -a +nchor s -fill x -expand 1)); $gm_quick->bind('<KeyPress-Return>', sub { send_msg_all($gm_quick->get +()); $gm_quick->delete(0,'end'); } ); MainLoop; # Entry disappear ! use Tk; my $mw = MainWindow->new(); my $fm = $mw->Frame->pack(-fill => 'both', -expand => 1); $fm->Label(-text => "Perl chat") ->pack; $fm->Text->pack(-side => 'top'); my $sub_fm = $fm->Frame->pack(-fill => 'both', -expand => 1 , -side => + 'bottom'); $sub_fm->Entry->pack(-fill => 'x' , -expand => 1); MainLoop; # titto! use Tk; my $mw = MainWindow->new(); my $fm = $mw->Frame->pack(-fill => 'both', -expand => 1); $fm->Label(-text => "Perl chat") ->pack; $fm->Text->pack(-side => 'top'); #my $sub_fm = $fm->Frame->pack(-fill => 'both', -expand => 1 , -side = +> 'bottom'); $fm->Entry->pack(-fill => 'x' , -expand => 1); MainLoop;
I'm totally confused! I was wondering whether I don't really understand your code.
Please the gurus could explain it more clearly since I'm a beginner.
Any reply would be appreciated.

I am trying to improve my English skills, if you see a mistake please feel free to reply or /msg me a correction