22-04-2021, 05:38 AM
Buenas:
Tengo este código para que una scrollbar funcione con la rueda del ratón.
Todo funciona correctamente pero me surge un problema incómodo. Mi app tiene varias ventanas que se abren al mismo tiempo. Me he dado cuenta que independientemente de en la ventana en la que me encuentre interactuando, si muevo la rueda del ratón el scrollbar funciona y sube y baja. Es incómodo porque lo que yo quiero es que baje y suba pero solo cuando esté interactuando en la ventana dónde está esta scrollbar no desde todas. Imagino que tiene que ver con el .bind_all pero no doy con la solución.
Muchas Gracias.
Tengo este código para que una scrollbar funcione con la rueda del ratón.
Código:
self.topCCL = tk.Toplevel()
self.topCCL.title("CENTRO DE CONTROL LOGÍSTICO")
self.topCCL.geometry('800x600')
self.topCCL.resizable(True, True)
# Función scrollbar abajo principal de ccl.
def mouse_scroll(event):
self.canvasccl.yview_scroll(-3, "units")
# Función scrollbar arriba principal de ccl.
def mouse_scroll01(event):
self.canvasccl.yview_scroll(3, "units")
self.frameccl = ttk.Frame(self.topCCL, width=1920, height=1080)
self.frameccl.grid(row=0, column=0)
self.scrollccl = ttk.Scrollbar(self.frameccl, orient='vertical', style="S.Vertical.TScrollbar")
self.scrollccl.grid(row=0, column=1, sticky=tk.N+tk.S)
self.canvasccl = tk.Canvas(self.frameccl, scrollregion=(0,0,1250,1250), width=1900, height=1010, yscrollcommand=self.scrollccl.set)#background='#363232'
self.canvasccl.grid(row=0, column=0, sticky=tk.N+tk.S+tk.E+tk.W)
self.canvasccl.bind_all("<Button-4>", mouse_scroll)
self.canvasccl.bind_all("<Button-5>", mouse_scroll01)
self.scrollccl.configure(command=self.canvasccl.yview)
self.canvasccl.configure(scrollregion=self.canvasccl.bbox("all"))
self.frame_canccl = ttk.Frame(self.canvasccl, style="Frames02.TFrame")
self.canvasccl.create_window(0,0, window=self.frame_canccl, anchor='nw')
Todo funciona correctamente pero me surge un problema incómodo. Mi app tiene varias ventanas que se abren al mismo tiempo. Me he dado cuenta que independientemente de en la ventana en la que me encuentre interactuando, si muevo la rueda del ratón el scrollbar funciona y sube y baja. Es incómodo porque lo que yo quiero es que baje y suba pero solo cuando esté interactuando en la ventana dónde está esta scrollbar no desde todas. Imagino que tiene que ver con el .bind_all pero no doy con la solución.
Muchas Gracias.