How do I bind <MouseWheel> to scrollbar?

Nicholas Shewmaker nshewmaker at insightbb.com
Tue Dec 13 20:12:45 EST 2005


(I apologize if this posts twice. My AVG is being fussy.)

 From what I've read, MouseWheel is a very tricky event.  I have 
replaced my Python tcl84.dll and tk84.dll files with those in the 
ActiveTcl distribution to fix the crashes caused by the event.  Then, I 
managed to see that my test script (see code below) was registering the 
event by printing the delta value (+/- 120).

-----------------
from Tkinter import *

def reportScroll(event):
     print "scrolled", event.delta, event

root = Tk()

myListbox = Listbox(root, selectmode=SINGLE, height=10, width=20)
for x in range(30):
     myListbox.insert(END, x)
myListbox.pack(side=LEFT, expand=YES, fill=BOTH)

myScrollbar = Scrollbar(root, command=myListbox.yview)
myScrollbar.bind('<MouseWheel>', reportScroll)
myScrollbar.focus_set()
myScrollbar.pack(side=RIGHT, fill=Y)

myListbox.config(yscrollcommand=myScrollbar.set)

root.mainloop()
-----------------

The scrollbar and listbox are tied together, but moving the wheelmouse 
does nothing.  I realize the code above doesn't give the event any real 
duties, but I'm not really sure how to make that leap.  How and to what 
do I bind <WheelMouse> so that it will affect the listbox and the scrollbar?



More information about the Python-list mailing list