У меня есть этот прокручиваемый кадр (кадр внутри холста на самом деле).
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)
Я хотел бы привязать колесо мыши к полосе прокрутки, чтобы пользователь мог прокручивать рамку без необходимости использовать кнопки со стрелками на полосе прокрутки. Осмотревшись, я добавил привязку к моему canvas1
, как это.
self.frame1.bind("<MouseWheel>", self.OnMouseWheel)
Это функция:
def OnMouseWheel(self,event):
self.scrollbar1.yview("scroll",event.delta,"units")
return "break"
Но полоса прокрутки не перемещается, когда я использую колесико мыши. Кто-нибудь может мне с этим помочь? Все, что я хочу, - это когда пользователь использует колесико мыши (внутри области рамки/на полосе прокрутки), холст должен автоматически прокручиваться вверх или вниз.