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.
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. - Définissez la
command
de laScrollbar
à l’yview
de laListbox
. Quand l’utilisateur déplace le curseur de laScrollbar
, il appelle la méthodeyview
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()
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