* 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>
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to