Tkinter Tutorial - Barra di scorrimento
Il widget Tkinter Scrollbar è normalmente usato per scorrere widget come ListBox
, Text
o Canvas
in verticale, o Entry
in orizzontale. Mostra uno slider nella giusta posizione.
Tkinter ScrollBar
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)
Essa avvia l’istanza di Scrollbar
.
self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)
self.scrollbar.config(command=self.listbox.yview)
Dobbiamo configurare sia la Listbox
che la Scrollbar
per connetterle correttamente.
- Impostare il callback di
yscrollcommand
suset
diScrollbar
.yscrollcommand
è l’opzione ‘scrollable widgets’ che è controllata da una barra di scorrimento, ed è usata per comunicare con le barre di scorrimento verticali. - Impostare il
command
dellaScrollbar
sullayview
dellaListbox
. Quando l’utente sposta lo slider dellaScrollbar
, chiama il metodoyview
con l’argomento appropriato.
Tkinter Barra di scorrimento orizzontale
La barra di scorrimento orizzontale è usata per scorrere i widget come Text
e Entry
nell’orientamento orizzontale.
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)
Inizia una barra di scorrimento orizzontale specificando l’orient
per essere HORIZONTAL
.
self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)
Per far scorrere il testo orizzontalmente, dobbiamo impostare xscrollcommand
al metodo set
della Scrollbar
, ma non yscrollcommand
come nell’esempio precedente.
self.scrollbar.config(command=self.text.xview)
Corrispondentemente, il richiamo della barra di scorrimento orizzontale dovrebbe essere collegato al metodo xview
ma non 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