Hi all, I realize this is more of a Tk question than a python one, but since I'm using python and don't know Tcl/Tk I figured I'd ask here first before bugging the Tcl folks.
I am having a terrible time trying to get a pack() layout working. I have three frames stacked top to bottom and stretching across the master window from edge to edge. Crude ASCII Art rendition of the frames: ============ | header | ------------ | body | ------------ | log | ============ I want the header and log frames to have a fixed height (and stick to the top and bottom, respectively, of the master frame) and the body frame to expand to fill the rest of the space, for instance if the window is maximized. Here is a simple script that /almost/ does what I want. I've been tweaking the pack() options for three hours and I just can't seem to get the effect I want. This /can't/ really be this hard can it? If you run the script, be aware that since there are only frame widgets the window will initially be very very tiny. If you expand or maximize the window you'll see a thin black frame at the top, yay, a thin white frame at the bottom, yay, but the middle grey "body" frame will NOT span the Y axis, boo. It's there, and stretches from side to side, but it refuses to stretch top to bottom. Adding a widget (say, a Text) doesn't help, the light grey non-frame rectangles remain. My investigations seem to indicate that the light grey bars are part of something the Tk docs call a "parcel" that each slave widget gets packed into. Apparently the "header" and "log" frames don't use their entire parcels, but I don't know how to get the parcels themselves to "shrinkwrap" to the size of the actual Frame widgets. In any event, my head's sore and I'm just about ready to take out some graph paper and use the grid() layout manager instead. But I really want the automatic resizing that the pack() manager will do, rather than the static layout grid() will give me. Any thoughts or advice? Thanks in advance, ~Simon # Tkinter script from Tkinter import * t = Tk() header = Frame(t, bg="black", height=10) header.pack(expand=1, fill=X, side=TOP, anchor=N) body = Frame(t, bg="grey") body.pack(expand=1, fill=BOTH, anchor=CENTER) log = Frame(t, bg="white", height=10) log.pack(expand=1, fill=X, side=BOTTOM, anchor=S) t.mainloop() -- http://mail.python.org/mailman/listinfo/python-list