Thats great, thanks Michael for the examples, I'll tinker with grid() and place().
Cheers! --zubin > On Mon, 15 May 2006 15:42:48 -0400 (EDT) > "Zubin Wadia" <[EMAIL PROTECTED]> wrote: > >> Hello Everyone, >> >> Another basic question in regard to frame layouts with Tkinter. >> >> I want to create a basic quadrant of frames but am not able to follow >> the >> logic to do so, whats the right way or an easier way to control layout >> of >> frames and wigets. A pixel approach would be nice (where by you can >> specify pixel locations for a frame or a widget to be located) instead >> of >> specifying arbitary location positions like LEFT, RIGHT, etc and things >> moving constantly when you add more widgets or resize windows. >> > > Hi Zubin, > > there are three different geometry managers in Tkinter, pack(), grid() and > place(). > As you have noticed, pack() is very handy to use for simple gui layouts > but more complex > ones may be hard to achieve. > grid() is more flexible than pack(), it lets you arrange widgets in row > and columns, e.g.: > > from Tkinter import * > root = Tk() > # define rows and columns that should expand on window resizing > root.grid_rowconfigure(1, weight=1) > root.grid_rowconfigure(2, weight=1) > root.grid_columnconfigure(0, weight=1) > Label(root, text='Label1', bg='white').grid(row=0, column=0, sticky='ew') > Label(root, text='Label2', bg='yellow').grid(row=0, column=1) > Label(root, text='Label3', bg='green').grid(row=0, column=2) > Label(root, text='Label4', bg='red').grid(row=1, column=0, columnspan=2, > sticky='nsew') > Label(root, text='Label5', bg='blue').grid(row=2, column=0, columnspan=3, > sticky='nsew') > root.mainloop() > > place() is even much more flexible than grid(), but it is much more > complex to use, too, > so I recommend to think twice if you really need its capabilities. > With place() you can define absolute or relative x ynd y coords of a > widget in its container and > relative or absolute dimensions, e.g: > > from Tkinter import * > root = Tk() > Label(root, text='Label1', bg='green').place(x=10, y=40, relwidth=0.5, > relheight=0.3) > Label(root, text='Label2', bg='yellow').place(relx=0.1, rely=0.8, > width=60, height=30) > root.mainloop() > > I hope this helps > > Michael > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > -- "People demand freedom of speech to make up for the freedom of thought which they avoid." -- Socrates (470?-399 BC), _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor