Tkinter Tutorial - Barra di scorrimento

Jinku Hu 25 giugno 2020
  1. Tkinter ScrollBar
  2. Tkinter Barra di scorrimento orizzontale
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()

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.

Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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