Tutoriel Tkinter - Barre de défilement

  1. Tkinter ScrollBar
  2. Tkinter Horizontal Scrollbar

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.

comments powered by Disqus