Tkinter Tutorial - Barra di scorrimento

  1. Tkinter ScrollBar
  2. Tkinter Barra di scorrimento orizzontale

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()  

Tkinter Scrollbar Basic

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.

  1. Impostare il callback di yscrollcommand su set di Scrollbar. yscrollcommand è l’opzione ‘scrollable widgets’ che è controllata da una barra di scorrimento, ed è usata per comunicare con le barre di scorrimento verticali.
  2. Impostare il command della Scrollbar sulla yview della Listbox. Quando l’utente sposta lo slider della Scrollbar, chiama il metodo yview 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()  

Tkinter Barra di scorrimento orizzontale

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.