TUTORIAL · Tkinter
Tutorial de Tkinter - Barra de desplazamiento
Este tutorial introduce la barra de desplazamiento en Python Tkinter.
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.