Tkinter Toplevel sizing issue (using a grid)

Alf P. Steinbach alfps at start.no
Sat Jun 12 17:31:22 EDT 2010


* random joe, on 12.06.2010 01:40:
> Hello all,
>
> Hi this i my first post here. I would like to create a tkinter
> toplevel window with a custom resize action based on a grid. From the
> Tk docs it say you can do this but for the life of me i cannot figure
> out how? In my app i wish for the main window to only resize in 20
> pixel "jumps" (if you will). I have tried using the toplevel.grid()
> and setgrid option and no luck!
>
> ## here is the tk doc page about setGrid
> http://www.tcl.tk/man/tcl/TkLib/SetGrid.htm
>
> ## here is the Tkinter method from wm class
>      def wm_grid(self,
>           baseWidth=None, baseHeight=None,
>           widthInc=None, heightInc=None):
>          """Instruct the window manager that this widget shall only be
>          resized on grid boundaries. WIDTHINC and HEIGHTINC are the
> width and
>          height of a grid unit in pixels. BASEWIDTH and BASEHEIGHT are
> the
>          number of grid units requested in Tk_GeometryRequest."""
>          return self._getints(self.tk.call(
>              'wm', 'grid', self._w,
>              baseWidth, baseHeight, widthInc, heightInc))
>      grid = wm_grid
>
>
> ## Here is my code.
>
> from Tkinter import *
>
> class TopWin(Tk):
>      def __init__(self):
>          Tk.__init__(self)#, setgrid=1)
>          #self.maxsize(width=50, height=50)
>          #self.minsize(width=1, height=1)
>          self.grid(10, 10, 20, 20)
>
> topwin = TopWin()
> topwin.mainloop()
>
>
> Please help. I am going nuts trying to make this work for three hours
> already :(

It seems that the 'grid' call only affects programmatic resizing, not user resizing.


<example>
#Py3

from tkinter import *

class TopWin(Tk):
     def __init__(self):
         Tk.__init__( self )
         self.geometry( "40x30" )
         self.grid( 10, 10, 20, 20 )

topwin = TopWin()
topwin.mainloop()
</example>



Here the effective presentation area size is (seems to be) 400x300 pixels.


Cheers & hth.,

- Alf

-- 
blog at <url: http://alfps.wordpress.com>



More information about the Python-list mailing list