TUTORIAL · Tkinter
Tkinter Tutorial - Barra de rolagem
Este tutorial introduz a barra de rolagem em Python Tkinter.
Nesta página
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.