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
yscrollcommand
aset
deScrollbar
. La opciónyscrollcommand
es un widget desplazable que se controla con una barra de desplazamiento, y se usa para comunicarse con barras de desplazamiento verticales. - Ponga el
command
de laScrollbar
en layview
delListbox
. Cuando el usuario mueve el deslizador de laScrollbar
, llama al método de layview
con 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