Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Expanding a Text Widget

by Scarborough (Hermit)
on Oct 11, 2004 at 07:32 UTC ( [id://398111]=perlquestion: print w/replies, xml ) Need Help??

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

I am using a Tk. interface and have the following cut code

my $tw= $mw->Text()->pack(-anchor=>'w', -fill=>'both');

I expected this to expand the text widget in x and y directions when the overall window size changes. However this only works width wise and the height stays the same.I have even tried this with $tw as the only widget in the main window and got the same result.

Where am I going wrong?

Replies are listed 'Best First'.
Re: Expanding a Text Widget
by si_lence (Deacon) on Oct 11, 2004 at 09:07 UTC
    Hi,
    Use the "-expand" option.
    my $tw= $mw->Text()->pack(-anchor=>'w', -fill=>'both', -expand=>'1');
    si_lence
Re: Expanding a Text Widget
by kelan (Deacon) on Oct 11, 2004 at 15:00 UTC

    As si_lence noted above, you need to give the -expand option when packing the widget. The difference between -fill and -expand is a little confusing if you don't know exactly how pack operates. You can find a more detailed description in the pack manpage under the section "The Packer Algorithm".

    Widgets are packed in the order you specify in your program. The space available to a widget depends on what has already been packed into the same window. The first widget can take all of the space it needs, the second has whatever is left over from the first, and so on. The space that pack gives to a widget is called its parcel, which it determines from the amount of available space and how much space the widget requested (with the -width and -height options).

    The -fill option is used when a widget's parcel is bigger than the size it requested. If the parcel is bigger, the widget will be resized to "fill" the space if the -fill option was given.

    The -expand option is used at the very end, once all widgets have been packed for a given window. At that point, if there is still extra space in the window, the remaining space is divided up among all widgets that were packed with -expand. In other words, those widgets get their parcels "expanded", so that all of the window's space will be used.

    In summary, -expand does not directly affect the widget itself, but the widget's parcel. It means, "If the window has extra room, expand this widget's parcel: give it some more space." On the other hand, -fill does directly affect the widget. It means, "If this widget was allocated more space than it needed, resize the widget so that it fills all of the space."

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://398111]
Approved by kvale
Front-paged by Courage
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (2)
As of 2024-04-20 04:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found