[Tkinter-discuss] Scale widget fires command on entering mainloop?
david.giesen at kodak.com
david.giesen at kodak.com
Fri Nov 7 14:18:18 CET 2008
Hi -
I'm trying to figure out why the Tkinter Scale widget seems to fire its
command callback when the root.mainloop() is executed. This seems in
contrast with other widgets like the Button that only fire the command
callback in response to user interaction. I'm using Windows XP, the
Python 2.5 and, based on the folder names in the Python\tcl folder, tk8.4
and tcl8.4.
Below is an example script. It sets up two sliders who get values
initialized in two different ways. The print statements show that the
sliders are initialized and packed, and THEN the command callbacks occur
once the root.mainloop() statement executes.
Can suggest a way to prevent this from happening? I could have each
callback do no action the first time it is called, I suppose. But I
wonder if I'm simply doing something wrong, or if I'm assuming a behavior
from Tkinter that I should not, or if I've encountered something
"strange".
Thanks in advance!
Dave Giesen
# Start of demo script
import Tkinter as Tk
import gwidgets as gw
root = Tk.Tk()
def printme1(value):
print 'Scale # 1 just called back with value:', value
scalevar = gw.iVar(7)
scale1 = Tk.Scale(root, command=printme1, variable=scalevar)
print 'Scale #1 initialized with value:', scale1.get()
def printme2(value):
print 'Scale # 2 just called back with value:', value
scale2 = Tk.Scale(root)
print 'Scale #2 initialized with value: ', scale2.get()
scale2.set(4)
print 'Scale #2 just set to value: ', scale2.get()
scale2.configure(command=printme2)
print 'Now packing scales'
scale1.pack()
scale2.pack()
print 'Done packing scales'
root.mainloop()
# End of demo script
More information about the Tkinter-discuss
mailing list