Ce tutoriel vous guidera dans l’implémentation de barres de défilement dans vos applications Tkinter. Les barres de défilement sont essentielles pour gérer le contenu qui dépasse la zone de fenêtre visible, assurant ainsi une expérience utilisateur fluide.
Table des matières
- Barres de défilement verticales
- Barres de défilement horizontales
- Combinaison des barres de défilement horizontales et verticales
Barres de défilement verticales
Les barres de défilement verticales sont cruciales lorsque vos widgets, tels que Text
, Listbox
, ou des canevas personnalisés, contiennent plus de contenu que ce qui peut tenir dans la hauteur de la fenêtre. Créons un exemple simple utilisant un widget Text
:
import tkinter as tk
root = tk.Tk()
root.title("Barre de défilement verticale Tkinter")
text_area = tk.Text(root, wrap=tk.WORD)
text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar = tk.Scrollbar(root, orient="vertical", command=text_area.yview)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
text_area.config(yscrollcommand=scrollbar.set)
long_text = "Ceci est un exemple de texte long pour démontrer la fonctionnalité de la barre de défilement. Il continuera sur plusieurs lignes, assurant que la barre de défilement devienne nécessaire. Vous pouvez ajouter autant de texte que vous le souhaitez, et la barre de défilement s'ajustera automatiquement." * 5
text_area.insert(tk.END, long_text)
root.mainloop()
Ce code crée un widget Text
et une barre de défilement verticale. Les lignes clés sont :
command=text_area.yview
: Connecte le mouvement de la barre de défilement à la méthodeyview
du widgetText
, contrôlant le défilement vertical.yscrollcommand=scrollbar.set
: Connecte les événements de défilement du widgetText
à la barre de défilement, mettant à jour sa position.
Barres de défilement horizontales
Les barres de défilement horizontales sont utilisées lorsque la largeur de votre contenu dépasse la largeur de la fenêtre. L’implémentation est similaire à la barre de défilement verticale, mais nous utilisons la méthode xview
et orient="horizontal"
:
import tkinter as tk
root = tk.Tk()
root.title("Barre de défilement horizontale Tkinter")
canvas = tk.Canvas(root, width=200, height=100)
canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar_h = tk.Scrollbar(root, orient="horizontal", command=canvas.xview)
scrollbar_h.pack(side=tk.BOTTOM, fill=tk.X)
canvas.config(xscrollcommand=scrollbar_h.set)
canvas.create_line(0, 50, 1000, 50, width=2, fill="red")
root.mainloop()
Cet exemple utilise un widget Canvas
. Notez l’utilisation de xview
au lieu de yview
, et la barre de défilement est placée en bas.
Combinaison des barres de défilement horizontales et verticales
Pour une flexibilité maximale, vous pouvez combiner les barres de défilement horizontales et verticales. Ceci est particulièrement utile pour les widgets dont le contenu dépasse à la fois la largeur et la hauteur de la fenêtre. Voici un exemple utilisant un widget Text
avec les deux barres de défilement :
import tkinter as tk
root = tk.Tk()
root.title("Barres de défilement combinées Tkinter")
text_area = tk.Text(root, wrap=tk.WORD)
text_area.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
vscrollbar = tk.Scrollbar(root, orient="vertical", command=text_area.yview)
vscrollbar.pack(side=tk.RIGHT, fill=tk.Y)
hscrollbar = tk.Scrollbar(root, orient="horizontal", command=text_area.xview)
hscrollbar.pack(side=tk.BOTTOM, fill=tk.X)
text_area.config(yscrollcommand=vscrollbar.set, xscrollcommand=hscrollbar.set)
long_text = "Ceci est un exemple de texte très long...n" * 100
text_area.insert(tk.END, long_text)
root.mainloop()
N’oubliez pas d’ajuster les attributs width
et height
de vos widgets selon vos besoins. Expérimentez avec différents widgets et contenus pour bien comprendre la fonctionnalité des barres de défilement dans Tkinter.