Search code examples
variablestkintergeometrywindowpack

How to use variable in windows size in tkinter?


I'm starting to dig into coding on phyton and I try to make a simple window with set of buttons (wider, taller and close). The point is to make window bigger in width by 10 upon "WIDER" button click and make window bigger in height by 10 upon "TALLER" button click.

The window geometry is set in the beginning. How can I apply a variable to width for example? So then every time I click on "WIDER" the window would become +10 wider?

import tkinter

master=tkinter.Tk()
master.title("pack() method")
master.geometry("450x350")


button1=tkinter.Button(master, text="WIDER")
button1.pack(expand=True)

button2=tkinter.Button(master, text="CLOSE", command=master.destroy)
button2.pack(expand=True)

button3=tkinter.Button(master, text="TALLER")
button3.pack(expand=True)

master.mainloop()

Solution

  • This should do it.

    import tkinter
    
    def makeWider():
        w=master.winfo_width()
        h=master.winfo_height()
        w += 10
        master.geometry(f"{w}x{h}")
    
    def makeTaller():
        w=master.winfo_width()
        h=master.winfo_height()
        h += 10
        master.geometry(f"{w}x{h}")
    
    master=tkinter.Tk()
    master.title("pack() method")
    master.geometry("450x350")
    
    
    button1=tkinter.Button(master, text="WIDER",command=makeWider)
    button1.pack(expand=True)
    
    button2=tkinter.Button(master, text="CLOSE", command=master.destroy)
    button2.pack(expand=True)
    
    button3=tkinter.Button(master, text="TALLER",command=makeTaller)
    button3.pack(expand=True)
    
    master.mainloop()