Tkinter and frame resizing question

Martin Franklin martin.franklin at westgeo.com
Tue Sep 25 08:34:26 EDT 2001


Oops, I re-read the original message....sorry....  please ignore me!

I guess the only way would be to have a fixed size main window and a 
scrolled frame (Pmw.ScrolledFrame) above that......

Martin



Martin Franklin wrote:

> Martin Franklin wrote:
> 
>> Laura Creighton wrote:
>> 
>>> I have a Tkinter screen that looks like this:
>>> (sorry for the cheesy graphics; hope you have a
>>> fixed width font!)
>>> 
>>> -----------------------
>>> |                     |
>>> |   big frame1        |
>>> |                     |
>>> |                     |
>>> -----------------------
>>> |                     |
>>> |   big frame2        |
>>> |                     |
>>> |                     |
>>> -----------------------
>>> |  tiny frame  (with  |
>>> |many control buttons)|
>>> -----------------------
>>> 
>>> When I use grid_remove() to remove a big frame, the window is
>>> redrawn from the top down, and so my tiny frame moves upwards.
>>> I don't want this.  I'd prefer to anchor the tiny frame to the
>>> bottom of the screen and then have the top of the window rise
>>> or fall depending on how many big frames I grid.  Does anybody
>>> know how to do this?
>>> 
>>> Laura Creighton
>>> 
>>> 
>> 
>> Laura,
>> 
>> Are you resticted to using the grid geometry manager? If not try
>> .pack(side='bottom') (and then pack_forget())
>> 
>> If you must use the grid manager you could try playing with the sticky
>> bits (frame.grid(sticky='s')
>> 
>> Martin.
>> 
>> 
> 
> 
> -- offline comments -----
> 
> Laura,
> 
> post me some code I have done a similar thing and got it working.....
> 
> let me see...
> 
> Oh yes I had to repack all the lower frames in order......
> 
> from Tkinter import *
> 
> root=Tk()
> 
> 
> f1=Frame(root)
> b=Button(f1, text='Close', command=root.quit)
> b.pack()
> f1.pack(side='top')
> 
> f1a=Frame(root)
> l=Label(f1a, text='This should be in te middle')
> l.pack()
> f1a.pack(side='top')
> 
> def forget_f1():
>     f1.pack_forget()
>     
> def remember_f1():
>     f1a.pack_forget()
>     f1.pack(side='top')
>     f1a.pack(side='top')
>     
> 
> f2=Frame(root)
> b1=Button(f2, command=forget_f1, text='Forget')
> b1.pack()
> b2=Button(f2, command=remember_f1, text='Remember')
> b2.pack()
> f2.pack(side='bottom')
> root.mainloop()
> 
> HTH
> Martin.
> 
> 
> 
> On Tuesday 25 September 2001 11:12, you wrote:
>> using pack is no problem -- my problem is in communicating with the
>> window manager.  when tkinter resizes a window, because you have
>> used pack_forget(), the window manager says, aha i will start drawing
>> your new smaller or larger window FROM THE TOP DOWN.  I would like
>> it to draw if FROM THE BOTTOM UP.  But this looks to be as impossible
>> as I thought. so I will have to change the layout of the controls to
>> make them on the top, because I can't have them hopping around
>> like a frog in a fire.
>>
>> thanks anyway,
>> Laura
> 
> 
> 
> 
> 
> 
> 




More information about the Python-list mailing list