Threading and tkinter
Steve Holden
steve at holdenweb.com
Wed Feb 18 21:20:13 EST 2009
gert wrote:
> Can you first explain why x stay's 0 please and how i should update x
> using threads ?
>
> from tkinter import *
> from _thread import start_new_thread
> from time import sleep
>
> x=0
> def weegbrug(x):
> while True:
> x=x+1
> sleep(0.5)
> start_new_thread(weegbrug,(x,))
>
> root = Tk()
> v = StringVar()
> v.set("00000")
> txt = Label(root, textvariable=v, width=800, height=600, bg="yellow",
> font=("Helvetica", 300))
> txt.pack(expand=YES, fill=BOTH)
> root.title("Weegbrug")
> root.after(500, lambda:v.set(x))
> root.mainloop()
>
The reason x stays at zero has nothing to do with threading.
The statement
x=x+1
(which, by the way, should stylistically be written
x = x + 1
if you want your code to be readable) doesn't change anything outside
the function. Function arguments are values: since x is a parameter of
the function, it exists only inside the function call's namespace.
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
More information about the Python-list
mailing list