Am 22.06.16 um 22:53 schrieb Pierre-Alain Dorange:
Christian Gollwitzer <aurio...@gmx.de> wrote:
If you do not see the background, then indeed the canvas is not resized,
which means the gridding options are wrong. Looking at your code, I see
this:

self.map.grid(row=1,column=1,rowspan=4,columnspan=2,padx=2,pady=2)

Here, you do not specify any sticky options, which means it should
default to centering. Try adding NSEW sticky options.

That's magic !
It works just fine...

:)

If i do understand NSEW sticky option make the widget autoadjust to the
available space. The default option is just CENTERED... I do not explore
this, i just thought NSEW was also CENTERED.

IMHO the sticky options in grid are actually very intuitive, once you understand them. The widget gets "pinned" on each side that is mentioned in the sticky set. If it is not pinned in one direction, then it is centered. So, for instance sticky=N means pin it on top (North), but neither south, east nor west. This means, the widget is aligned to the top of the cell and centered in left-right direction, but does not resize. Whereas, sticky=NS means pin it north and south, which is stretching in vertical direction to fill the height, center in left-right. sticky=NSEW pins it at all four sides which consequently stretches it in both directions.

BTW, the Tkinter wrapper is a bit clumsy for this option. In the original Tk, the sticky option is just a string. You can still pass that and do

        sticky='nsew'

instead of the clumsy

        sticky=Tkinter.N+Tkinter.S+Tkinter.E+Tkinter.W

Christian
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to