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
yscrollcommand
callback paraset
deScrollbar
.yscrollcommand
é a opção “scrollable widgets” que é controlada por uma barra de rolagem, e é utilizada para se comunicar com barras de rolagem verticais. - Defina
command
daScrollbar
para ayview
daListbox
. Quando o usuário move o deslizador daScrollbar
, ele chama o métodoyview
com 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