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