Hi Zizou, On Sun, 20 Jun 2010 04:06:45 +0200 zizou afix <ziz.r...@gmail.com> wrote:
> Hi, > i'm a new user of tkinter, > I would like to adjust my canevas to the main window when a resize it. > i've just find this on the web : > http://infohost.nmt.edu/tcc/help/pubs/tkinter/layout-mgt.html#root-resize > but in my case that don't work > > this is my code : > 2 canvas and 2 scrollbars > it runs but it does not fit at the window > if someone can help me, very very thanks > > ##################################################################################### > from Tkinter import * > > class Application(Frame): > def __init__(self, master=None): First we should find out which widget(s) actually does not expand when the window is resized. To do so it may be helpful to change the background color of the Frame surrounding the two Canvases : > Frame.__init__(self, master, bg='yellow') > self.grid(sticky=N+S+E+W) > self.canCompose() When you run this slightly modified example you will see that it is actually the Frame that does not get resized, not the Canvases. When I change the line self.grid(sticky=N+S+E+W) into self.pack(fill='both', expand=1) the Frame will expand as expected when the window is resized. So we see that the self.grid(...) command is the problematic part. In fact in your example the Frame expands vertically, but not horizontally, but why? The explanation is a few lines below: > > def canCompose(self): > top=self.winfo_toplevel() > top.rowconfigure(0, weight=1) > top.columnconfigure(1, weight=1) Here you tell the application window to expand row 0 and column 1 when the window is resized, but a few lines above you put your Frame into row 0 and column 0 (yet not explicitely, but if you do not define grid cells, the grid manager will begin automagically with row 0 and col. 0). So the solution is to change either self.grid(sticky=N+S+E+W) into self.grid(row=0, column=1, sticky=N +S +E +W) or top.columnconfigure(1, weight=1) into top.columnconfigure(0, weight=1) I hope this helps Michael _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss