Default padding for Tkinter grid
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Mon May 4 10:57:41 EDT 2009
En Mon, 04 May 2009 10:27:49 -0300, Amr <amrbekhit at gmail.com> escribió:
> I've been spending the last few days experimenting with Tkinter. The
> grid manager is nice and easy to use, but I have found that I am often
> having to specify padx and pady options to every widget I add to my
> grid. The way I am doing it is to create a dictionary:
>
> paddding = {'padx': '1m', 'pady': '1m'}
>
> and then apply it to the grid method using **padding.
>
> However, I was wondering if there was a way of setting default padx
> and pady controls for the grid, so that I can just call grid without
> having to specify any extra parameters.
You have to call grid() once on every widget, so adding **padding at the
end doesn't appear too bad to me:
label = Label(master, text="Hello world!")
widget.grid(row=3, col=1, **padding)
What about a function:
def grid_with_padding(widget, padx='1m', pady='1m', **kw):
widget.grid(padx=padx, pady=pady, **kw)
If you want an uniform padding:
def add_padding(container, padx='1m', pady='1m'):
nc, nr = container.grid_size()
for i in range(nc):
container.grid_columnconfigure(i, pad=padx)
for i in range(nr):
container.grid_rowconfigure(i, pad=pady)
--
Gabriel Genellina
More information about the Python-list
mailing list