cosmetic Tkinter question

Eric Brunel eric_brunel at
Mon Jan 3 15:52:10 CET 2005

Sean McIlroy wrote:
> I've got a bunch of Frames, all packed into the root window with
> side=TOP, and in each Frame I've got a Checkbutton packed with
> side=LEFT. I expected the Checkbuttons to be flush with the left edge
> of the window, but they're not, and it looks a little gross. How do I
> get them to align?

The standard behaviour for frames is to adapt to their contents, and packing 
them with side=TOP without any other option will center them in their container.

So you have a few solutions to your problem:
- use the anchor option when packing the frames; setting anchor=W should do what 
you want
- use fill=X when packing the frames, as Harold said. This expands the frame to 
the whole width of its container, so this should align the check-buttons (if it 
doesn't work, add the option expand=1 to force the frame to be wider than its 

A silly question BTW: why do you use frames? If you have only check-buttons in 
them, you do not need them:

from Tkinter import *
root = Tk()
for i in range(0, 101, 20):
   b = Checkbutton(root, text='Option %s' % i)
   b.pack(side=TOP, anchor=W)

- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools -

More information about the Python-list mailing list