Problem resizing a window and button placement
Steve GS
Gronicus at SGA.Ninja
Mon Feb 26 06:02:59 EST 2024
Although your code produces the value of Ww outside the function, I do not see how I can use the value of Ww unless I close the program.
import tkinter as tk
Ww = None # What does this do? Why not Integer?
WwZ = None
def on_configure(*args):
global Ww
global WwZ
Ww = root.winfo_width()
print("9 Ww Inside =<"+str(Ww)+">") # works
WwZ = Ww * 2
print("11 WwZ Inside =<"+str(WwZ)+">") # works
return(Ww) #Can I use this?
root = tk.Tk()
root.bind('<Configure>',on_configure)
print("15 Ww Inside1 = <"+str(Ww)+">")
#Ww2 = int(Ww) * 2 # fails
print("17 WwZ Inside2 = <"+str(WwZ)+">")
root.mainloop()
Ww2 = int(Ww) * 2 #Works but only after the program stops
print("21 Ww Outside2 = <"+str(WwZ)+">")
# Can I have concentric loops?
SGA
-----Original Message-----
From: Alan Gauld <learn2program at gmail.com>
Sent: Monday, February 26, 2024 4:04 AM
To: Steve GS <Gronicus at SGA.Ninja>; python-list at python.org
Subject: Re: RE: Problem resizing a window and button placement
On 26/02/2024 07:56, Steve GS via Python-list wrote:
> Then there is that discovery
> element: Why is my original
> idea not working? I still
> cannot pass the value back
> from the function. What is
> different about this function
> that others would have given
> me the value?
There is nothing different, see the code below.
print() is a function like any other.
In this case it is called after you close the window, ie after mainloop() exits.
But any other function called inside
mainloop - eg any other event handler can also access it.
For example, if you added a button:
def printW(): print("Button Ww = ", Ww)
bw = tk.Button(root, text="Print Width", command=printW)
bw.pack()
You would be able to print the value on demand.
>> import tkinter as tk
>>
>> Ww = None
>>
>> def on_configure(*args):
>> global Ww
>> Ww = root.winfo_width()
>> print("Ww Inside =<"+str(Ww)+">")
>>
>> root = tk.Tk()
>> root.bind('<Configure>',on_configure)
>> root.mainloop()
>>
>> print("Ww Outside = <"+str(Ww)+">")
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
More information about the Python-list
mailing list