Younes Tech
Younes Tech

Reputation: 1

Tkinter window geometry

I'm working on Tkinter window, and I want to set up the height and width of the screen without the geometry function, so I made 2 scales vertical and horizontal, then I use a button with a command that set up the window size in the following code:

root = Tk()
root.title("Root window")

label = Label(root, text="The height").pack()
slay = Scale(root, from_=0, to=200)

slay.pack()

my_label = Label(root, text="The width").pack()

hor = Scale(root, from_=0, to=250, orient=HORIZONTAL)

hor.pack()

def btns():
 root.geometry(str(f"{slay.get} x {hor.get}"))

btn = Button(root, text="Setup the window size", command=btns).pack()

And the error is: line 20, in btns root.geometry(str(f"{slay.get} x {hor.get}"))

Upvotes: 0

Views: 1968

Answers (2)

Derek
Derek

Reputation: 2234

This works.

The problem was root.geometry(str(f"{vert.get} x {hori.get}"))

I changed it to this root.geometry(str(f"{vert.get()}x{hori.get()}"))

Simply removed the spaces around 'x' and added () to the get

Also added orient = VERTICAL to slay

root = Tk()
root.title("Root window")

label = Label(root, text="The height").pack()
slay = Scale(root, from_=0, to=200, orient=VERTICAL)

slay.pack()

my_label = Label(root, text="The width").pack()

hor = Scale(root, from_=0, to=250, orient=HORIZONTAL)

hor.pack()

def btns():
    print( slay.get(), hor.get() )
    root.geometry(str(f"{slay.get()}x{hor.get()}"))

btn = Button(root, text="Setup the window size", command=btns).pack()

root.mainloop()

Upvotes: 0

user15801675
user15801675

Reputation:

You are just referencing the .get() function, never actually calling them. So you will receive an error.

Call the function using (). Also, there is no space between str(f"{slay.get()} x {hor.get()}").

So it would look something like this:

root.geometry(str(f"{slay.get()}x{hor.get()}"))

Upvotes: 1

Related Questions