Tkinter Tutorials

Maîtriser les barres de défilement dans Tkinter

Spread the love

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

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éthode yview du widget Text, contrôlant le défilement vertical.
  • yscrollcommand=scrollbar.set : Connecte les événements de défilement du widget Text à 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *