Tkinter Toplevel geometry
James Stroud
jstroud at mbi.ucla.edu
Sun Mar 25 08:03:25 EDT 2007
James Stroud wrote:
> Chris wrote:
>> Hi,
>>
>> If a user resizes a Toplevel window, or I set a Toplevel's geometry
>> using the geometry() method*, is there any way to have the geometry
>> reset to that required for all the widgets?
>>
>> I think I found what I'm looking for in tk itself:
>> """
>> 13.3. How can I clear the geometry settings for a toplevel?
>> If you want to have Tk resize your toplevel to what the toplevel
>> requires (ie: the user might have resized it, or a widget was
>> removed), use [wm geometry $toplevel].
>> """
>> [from http://tcl.sourceforge.net/faqs/tk/]
>>
>>
>>
>> * for instance, if I want to turn of Tkinter's automatic adjustment of
>> the window to fit all the widgets by doing something like
>> self.geometry(self.geometry()), is there any way to undo that?
>>
>> Thanks,
>> Chris
>>
>
> Hi Chris,
>
> I think you are on to something. The equivalent of
>
> [wm geometry $toplevel]
>
> in Tkinter would be
>
> sometop.geometry()
>
> Or, equivalently,
>
> sometop.wm_geometry()
>
> Or, calling the underlying tcl/tk interpreter directly
>
> sometop.tk.call('wm', 'geometry', str(sometop))
>
> Which is redundant, but emphasizes the point: This does not resize the
> widget as expected nor does it cause the window to resize upon adding
> new packing slaves--at least for the X11 based Tkinter for mac via the
> fink debian based package manager.
>
> Really wish things worked according to the docs a lot of the time or
> that they weren't so poorly written. Perhaps they are implying that you
> must pass parameters, however they do not explain how one might generate
> said parameters to get the required size to which they allude. Terribly
> disappointing.
>
> James
After playing with this an inordinate amount of time, I found that one
does need to supply parameters, namely the null parameter of an empty
string. Try:
sometop.geometry('')
This repacks according to the widgets. Not quite clear from the
miserable docs, is it?
James
More information about the Python-list
mailing list