Python tkinter, la liaison de la molette de défilement

J'ai cette mesure de défilement cadre (à l'intérieur du cadre de la toile en fait).

import Tkinter as tk
class Scrollbarframe():
    def __init__(self, parent,xsize,ysize,xcod,ycod):
        def ScrollAll(event):
                canvas1.configure(scrollregion=canvas1.bbox("all"),width=xsize,height=ysize,bg='white')
        self.parent=parent
        self.frame1=tk.Frame(parent,bg='white')
        self.frame1.place(x=xcod,y=ycod)
        canvas1=tk.Canvas(self.frame1)
        self.frame2=tk.Frame(canvas1,bg='white',relief='groove',bd=1,width=1230,height=430)
        scrollbar1=tk.Scrollbar(self.frame1,orient="vertical",command=canvas1.yview)
        canvas1.configure(yscrollcommand=scrollbar1.set)
        scrollbar1.pack(side="right",fill="y")
        canvas1.pack(side="left")
        canvas1.create_window((0,0),window=self.frame2,anchor='nw')
        self.frame2.bind("<Configure>",ScrollAll)

Je voudrais lier molette de la souris de la barre de défilement de sorte que l'utilisateur peut faire défiler vers le bas de l'image sans avoir à utiliser les boutons de flèche sur la barre de défilement. Après avoir regardé autour, j'ai ajouté un liant à mon canvas1 comme ce

self.frame1.bind("<MouseWheel>", self.OnMouseWheel)

C'est la fonction:

def OnMouseWheel(self,event):
    self.scrollbar1.yview("scroll",event.delta,"units")
    return "break" 

Mais la barre de défilement ne bouge pas lorsque j'utilise la roulette de la souris. Quelqu'un peut-il m'aider? Tout ce que je veux, c'est quand l'utilisateur l'utilisation de la roulette de la souris (à l'intérieur de la zone d'image/sur la barre de défilement), la toile doit automatiquement faire défiler vers le haut ou vers le bas.

OriginalL'auteur Chris Aung | 2013-06-28