Tutorial de Tkinter - Barra de desplazamiento
El widget Scrollbar de Tkinter se usa normalmente para desplazar widgets como ListBox, Text o Canvas verticalmente, o Entry horizontalmente. Muestra un deslizador en la posición correcta.
Barra de desplazamiento de Tkinter
import tkinter as tk
class Scrollbar_Example:
def __init__(self):
self.window = tk.Tk()
self.scrollbar = tk.Scrollbar(self.window)
self.scrollbar.pack(side="right", fill="y")
self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
for i in range(100):
self.listbox.insert("end", str(i))
self.listbox.pack(side="left", fill="both")
self.scrollbar.config(command=self.listbox.yview)
self.window.mainloop()
if __name__ == "__main__":
app = Scrollbar_Example()

self.scrollbar = tk.Scrollbar(self.window)
Inicia la instancia Scrollbar.
self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.listbox.yview)
Necesitamos configurar tanto el Listbox como la Scrollbar para conectarlos correctamente.
- Configura la devolución de llamada de
yscrollcommandasetdeScrollbar. La opciónyscrollcommandes un widget desplazable que se controla con una barra de desplazamiento, y se usa para comunicarse con barras de desplazamiento verticales. - Ponga el
commandde laScrollbaren layviewdelListbox. Cuando el usuario mueve el deslizador de laScrollbar, llama al método de layviewcon el argumento adecuado.
Barra de desplazamiento horizontal de Tkinter
La barra de desplazamiento horizontal se usa para desplazar los widgets como Text y Entry en la orientación horizontal.
import tkinter as tk
class Scrollbar_Example:
def __init__(self):
self.window = tk.Tk()
self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)
self.scrollbar.pack(side="bottom", fill="x")
self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)
self.text.insert("end", str(dir(tk.Scrollbar)))
self.text.pack(side="top", fill="x")
self.scrollbar.config(command=self.text.xview)
self.window.mainloop()
if __name__ == "__main__":
app = Scrollbar_Example()

self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)
Inicia una barra de desplazamiento horizontal especificando que la orient es HORIZONTAL.
self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)
Para desplazar el texto horizontalmente, necesitamos poner xscrollcommand en el método set de la Scrollbar, pero no yscrollcommand como en el ejemplo anterior.
self.scrollbar.config(command=self.text.xview)
En consecuencia, la llamada de la barra de desplazamiento horizontal debe estar conectada con el método xview pero no con yview.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook