In article <[EMAIL PROTECTED]>, Paul Rubin <http://[EMAIL PROTECTED]> wrote:
>I have a gui with a bunch of buttons, labels, the usual stuff. It >uses the grid manager: > > gui = Frame() > gui.grid() > gui.Label(....).grid() # put some widgets into the gui > ... # more widgets > >Now at the the very bottom of the gui, I want to add two more buttons, >let's say "stop" and "go". I want "stop" to appear in the gui's lower >left corner and "go" to appear in the gui's lower right corner. >Suppose that up to now, row 16 is the last row in the gui. Then this >works: > > Button(gui, text="stop").grid(sticky=W) # starts row 17 > Button(gui, text="go").grid(row=17, column=1, sticky=E) > >But I don't really want that hardwired row number and I don't want to >keep counting rows and adjusting stuff if I stick new rows in the gui. A couple of options here: - Put the main portion of the gui into one frame and pack or grid the button frame below that. That sounds like a natural solution to this problem based on the way you describe it. (if you do that, I suggest packing the buttons into their frame; although I usually use the gridder when in doubt, the packer is often the most natural layout manager for a row of buttons). - Increment as you go: row = 0 wdg.grid(row=row, column=0, ...) row += 1 wdg2.grid(row=row, column=0, ...) row += 1 - If you are doing a lot of similar layout, it is worth creating a class to do your gridding for you. Each instance grids widgets in a particular frame. It keeps track of the row # for you. For use an existing gridder, for instance RO.Wdg.Gridder in the RO package <http://astro.washington.edu/rowen>. >So I try the obvious, make one Frame widget containing both new buttons: > stopgo = Frame(gui) > Button(stopgo, "stop").grid(sticky=W) > Button(stopgo, "go").grid(sticky=E) > >and try to stretch it across the bottom row of the gui: > > stopgo.grid(sticky=E+W) This looks OK to me so I'm not sure what's wrong; I think I'd have to see your actual code. I suggest examining the size of the stopgo frame by setting its background color. -- Russell -- http://mail.python.org/mailman/listinfo/python-list