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

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.
- Configurer le callback de la commande de défilement à l’ensemble de la barre de défilement.
yscrollcommandest 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. - Définissez la
commandde laScrollbarà l’yviewde laListbox. Quand l’utilisateur déplace le curseur de laScrollbar, il appelle la méthodeyviewavec 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()

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.
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