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

In reply to Re^2: treat widget when resizing window by xiaoyafeng
in thread treat widget when resizing window by xiaoyafeng

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.