[Tkinter-discuss] moving from pack to grid

Sorin Schwimmer sxn02 at yahoo.com
Mon Nov 27 17:05:10 CET 2006


> self.label.grid(row=5, column=2, column=0)

Why do you have "column" twice?

Grid will always compact your GUI: if you grid something on row 3, and rows 0..2 are
empty, everything is pushed up.  If you add a widget at row 2, row three goes down one
level to make room for row two. Similarly, for columns to the left.

If you need to have the empty rows/columns shown as empty, grid some placeholders (a
label with an empty text, stuff like that), and destroy them when replacing with the real widgets.

Example (untested):
<code>
from Tkinter import *

root=Tk()
l1=Label(root, text='A label')
l1.grid(row=2) # rows 0 and 1 are empty, so the grid manager will put the label on top

# let's push it down, to the real home row
pl1=Label(root) # first placeholder
pl1.grid(row=0)
pl2=Label(root)
pl2.grid(row=1) # second placeholder

# now let's put something on row 0, "real stuff"
vr=StringVar()
en=Entry(root, textvariable=vr)
pl1.destroy()
en.grid(row=0)

root.mainloop()
</code>

About filling a cell in the grid: check the sticky option.

About filling two or more adjacent cells with one widget: check the rowspan and
columnspan options.

Hope this help,
Sorin



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/tkinter-discuss/attachments/20061127/a4448edd/attachment.html 


More information about the Tkinter-discuss mailing list