Tkinter, scale widget, and mouse clicks

John Fouhy jfouhy at paradise.net.nz
Fri Jun 25 02:49:07 CEST 2004


klappnase at web.de (klappnase) wrote in message news:<a7a67196.0406221540.4dcc87b2 at posting.google.com>...
> jfouhy at paradise.net.nz (John Fouhy) wrote in message news:<c0f3aa87.0406211518.240493f5 at posting.google.com>...
> > So I've got a horizontal scale widget in my GUI.  When I click the
> > mouse in the area to the right of the GUI, the scale advances by 1.
> > I want to change this, so it jumps by a larger amount (and likewise if
> > I click to the left of the slider).
> > Any clues?
> You can address the part of the scale widget you clicked on with
> event.x/event.y, so maybe something like this might do what you want
> (untested):
> 
> var = IntVar()
> var.set(0)
> sb = Scrollbar(master, variable=var)
> sb.bind('<1>', jump)
> 
> def jump(event):
>     if sb.identify(event.x, event.y) == 'trough1':
>         var.set(var.get()-5)
>         return 'break'
>     elif sb.identify(event.x, event.y) == 'trough2':
>         var.set(var.get()+5)
>         return 'break'
> 
> I hope this helps
> 
> Michael

I had an idea of doing something like that, but I didn't know about
the 'identify' function.

Also, I am using the Scale widget, not the Scrollbar widget, but it
seems Scale has that function too.

(I wish Tkinter had better documentation)

Anyawy, your solution worked perfectly :-)

Thanks a lot,

-- 
John.



More information about the Python-list mailing list