Jah_Alarm wrote: > hi, here's my problem: > > let's say I have a function that uses some widget's property. How canI > retireve the value of this property? > > For example, > > PopSize=IntVar(); > > popsize=Entry(root,width=10,textvariable=PopSize) > > def rand_opo_gen (self,event): > popsize_start=#need to get the textvariable value from Entry > popsize, not variable PopSize! > pop1=random.random(popsize_start*2) > > Another option, of course, is that the variable PopSize acquires the > value from Entry, but I can't see how to do it either
In Tkinter you normally access properties of a widget with widget[propname]. This doesn't help here because it will only give you a name made up by Tkinter instead of the actual IntVar instance. Therefore the easiest approach is to keep a reference to the IntVar instance and invoke IntVar.get()/set(new_value). A self-contained example: import Tkinter as tk root = tk.Tk() size_var = tk.IntVar() size_var.set(42) size_entry = tk.Entry(root, textvariable=size_var) size_entry.pack() def show_size(): print size_var.get() show_button = tk.Button(root, text="show size", command=show_size) show_button.pack() def times_two(): new_value = size_var.get()*2 size_var.set(new_value) timestwo_button = tk.Button(root, text="times two", command=times_two) timestwo_button.pack() root.mainloop() Peter -- http://mail.python.org/mailman/listinfo/python-list