Skip to content Skip to sidebar Skip to footer

Centering And Size A Windows Frame In Tkinter Class Python

I want to center a window frame ad set a size using a ratio according to screensize. But I cannot see where to modify my code correctly to perform such program. My program is the f

Solution 1:

Why did you comment out the geometry line? It's quite close to what you need really. Try this:

master.geometry("%sx%s+%s+%s" % (FrameSizeX,FrameSizeY,FramePosX,FramePosY))

Solution 2:

This is the final code working for this feature :

import Tkinter #Python integrated tool kit for interfacesclassApp:
    def__init__(self,master):
        # Define frame size and position in the screen :
        ScreenSizeX = master.winfo_screenwidth()  # Get screen width [pixels]
        ScreenSizeY = master.winfo_screenheight() # Get screen height [pixels]
        ScreenRatio = 0.8# Set the screen ratio for width and height
        FrameSizeX  = int(ScreenSizeX * ScreenRatio)
        FrameSizeY  = int(ScreenSizeY * ScreenRatio)
        FramePosX   = (ScreenSizeX - FrameSizeX)/2# Find left and up border of window
        FramePosY   = (ScreenSizeY - FrameSizeY)/2
        master.geometry("%sx%s+%s+%s"%(FrameSizeX,FrameSizeY,FramePosX,FramePosY))
        frame = Tkinter.Frame(master)
        frame.pack()

        self.button = Tkinter.Button(frame,text="Quit",fg="red",command=frame.quit)
        self.button.pack()

        self.hi_there = Tkinter.Button(frame,text="Hi!",command=self.say_hi)
        self.hi_there.pack()

    defsay_hi(self):
        print"hello !"if __name__ == "__main__":
    root = Tkinter.Tk()
    app = App(root)
    root.mainloop()

Post a Comment for "Centering And Size A Windows Frame In Tkinter Class Python"