That said, you get what you want if you pack the Label and Entry widgets into a frame of their own and anchor that at the bottom of $left_frame before adding the other widgets (see also the -after and -before arguments to pack() for an alternative):
#!/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-iso8 +859-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;
The qw(-fill x -expand 1) arguments to pack() are provided for the text and entry widgets to resize nicely.
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
In reply to Re: treat widget when resizing window
by shmem
in thread treat widget when resizing window
by xiaoyafeng
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |