Tutoriel Tkinter - Barre de défilement

Jinku Hu 25 juin 2020
  1. Tkinter ScrollBar
  2. Tkinter Horizontal Scrollbar
Tutoriel Tkinter - Barre de défilement

Le widget Tkinter Scrollbar est normalement utilisé pour faire défiler des widgets comme ListBox, Text ou Canvas verticalement, ou Entry horizontalement. Il affiche un curseur dans la bonne position.

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)

Il initie l’instance Scrollbar.

self.listbox = tk.Listbox(self.window, yscrollcommand=self.scrollbar.set)

self.scrollbar.config(command=self.listbox.yview)

Nous devons configurer à la fois la Listbox et la Scrollbar pour les connecter ensemble correctement.

  1. Configurer le callback de la commande de défilement à l’ensemble de la barre de défilement. yscrollcommand est une option de widgets de défilement qui est contrôlée par une barre de défilement, et est utilisée pour communiquer avec les barres de défilement verticales.
  2. Définissez la command de la Scrollbar à l’ yview de la Listbox. Quand l’utilisateur déplace le curseur de la Scrollbar, il appelle la méthode yview avec l’argument approprié.

Tkinter Horizontal Scrollbar

La barre de défilement horizontale est utilisée pour faire défiler les widgets comme Text et Entry dans l’orientation horizontale.

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 Scrollbar Horizontal

self.scrollbar = tk.Scrollbar(self.window, orient=tk.HORIZONTAL)

Il initie une barre de défilement horizontale en spécifiant que l’orient est HORIZONTAL.

self.text = tk.Text(self.window, wrap="none", xscrollcommand=self.scrollbar.set)

Pour faire défiler le texte horizontalement, nous avons besoin de mettre la commande de défilement xscrollcommand à la méthode set de la Scrollbar, mais pas yscrollcommand comme dans l’exemple ci-dessus.

self.scrollbar.config(command=self.text.xview)

En conséquence, le rappel de la barre de défilement horizontale doit être connecté avec la méthode xview mais pas yview.

Auteur: 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