Please help -- Tkinter Scale widget with DoubleVar is acting weird
Fredrik Lundh
fredrik at pythonware.com
Thu Aug 19 13:01:26 EDT 2004
Jared Cohen wrote:
> Hi all. I'm currently using a Tkinter Scale widget which uses a
> DoubleVar as its control variable. I then use the "trace_variable('w',
> callback)" method to invoke a callback whenever the DoubleVar changes.
>
> The problem is this: the callback is triggered when the slider moves (as
> it should), but it's also triggered when I just HOVER the mouse over the
> slider without clicking! Somehow or other, it must think that the
> control variable is being changed, even though it isn't. I *think* that
> this problem is related to the loss of precision that DoubleVars can
> have, but I'm not really sure. Has anyone else experienced this problem?
> How can I fix this?
you could use a "command" callback instead of a traced variable:
import sys, Tkinter, types
root = Tkinter.Tk()
def callback(value):
print float(value)
slider = Tkinter.Scale(root,
from_ = 0.0,
to = 1.0,
resolution = 0.1,
command = callback,
orient = 'horizontal')
slider.grid(sticky='ew')
root.mainloop()
(use slider.get() to get the current value from outside the callback,
and slider.set(x) to set it).
</F>
More information about the Python-list
mailing list