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