Tkinter Tutorial - Barra de rolagem
O Tkinter Scrollbar widget é normalmente utilizado para rolar widgets como ListBox, Text ou Canvas verticalmente, ou Entry horizontalmente. Ele mostra um deslizador na posição correta.
Barra de rolagem do 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)
Ele inicia a instância Scrollbar.
self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.listbox.yview)
Precisamos configurar ambas Listbox e Scrollbar para conectá-las corretamente.
- Defina
yscrollcommandcallback parasetdeScrollbar.yscrollcommandé a opção “scrollable widgets” que é controlada por uma barra de rolagem, e é utilizada para se comunicar com barras de rolagem verticais. - Defina
commanddaScrollbarpara ayviewdaListbox. Quando o usuário move o deslizador daScrollbar, ele chama o métodoyviewcom o argumento apropriado.
Tkinter Barra de rolagem horizontal
A barra de rolagem horizontal é utilizada para rolar os widgets como Texto e Entry na orientação 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)
Ele inicia uma barra de rolagem horizontal especificando o orient a ser HORIZONTAL.
self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)
Para rolar o texto horizontalmente, precisamos definir xscrollcommand para o método set da Scrollbar, mas não yscrollcommand como no exemplo acima.
self.scrollbar.config(command=self.text.xview)
Correspondentemente, o retorno da barra de rolagem horizontal deve ser conectado com o método xview mas não com o 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