OUJOOD.COM
Le widget Label est probablement le premier que vous utiliserez dans Tkinter. Son rôle est d'afficher du texte statique — un titre, une étiquette de champ, un message de statut. Il peut aussi afficher une image, mais on commence par le texte.
Label de base
La syntaxe minimale : un parent, un texte, et un appel à un gestionnaire de mise en page pour le rendre visible :
import tkinter as tk
fenetre = tk.Tk()
fenetre.geometry("350x150")
label = tk.Label(fenetre, text="Bonjour, Tkinter !")
label.pack(pady=20)
fenetre.mainloop()
Sans appel à pack(), grid() ou place(), le label existe en mémoire mais n'apparaît pas à l'écran. C'est une erreur fréquente chez les débutants — créer des widgets sans les placer.
Personnaliser l'apparence
Le Label accepte de nombreuses options de style. Les plus utilisées :
import tkinter as tk
fenetre = tk.Tk()
fenetre.geometry("400x200")
fenetre.configure(bg="#f0f0f0")
# Police, taille, couleur de texte et de fond
label_titre = tk.Label(
fenetre,
text="Titre principal",
font=("Arial", 18, "bold"),
fg="#2c3e50",
bg="#f0f0f0"
)
label_titre.pack(pady=15)
# Texte sur plusieurs lignes avec largeur fixée
label_desc = tk.Label(
fenetre,
text="Ceci est une description un peu plus longue qui s'étend sur plusieurs lignes.",
font=("Arial", 11),
wraplength=320, # retour à la ligne automatique après 320 px
justify="center",
fg="#555",
bg="#f0f0f0"
)
label_desc.pack()
fenetre.mainloop()
Le paramètre wraplength est particulièrement utile pour les messages longs : sans lui, le texte s'étire sur une seule ligne et fait déborder la fenêtre. justify accepte "left", "center" et "right".
Mettre à jour le texte dynamiquement
Deux façons de changer le texte d'un label après sa création. La première utilise config() :
import tkinter as tk
fenetre = tk.Tk()
fenetre.geometry("300x150")
compteur = 0
def incrementer():
global compteur
compteur += 1
label.config(text=f"Clics : {compteur}") # mise à jour directe
label = tk.Label(fenetre, text="Clics : 0", font=("Arial", 14))
label.pack(pady=20)
tk.Button(fenetre, text="Cliquer", command=incrementer).pack()
fenetre.mainloop()
La seconde utilise une StringVar liée au label via l'option textvariable. Quand la variable change, le label se met à jour automatiquement sans appeler config() :
import tkinter as tk
fenetre = tk.Tk()
fenetre.geometry("300x150")
texte_var = tk.StringVar(value="État : en attente")
label = tk.Label(fenetre, textvariable=texte_var, font=("Arial", 12))
label.pack(pady=20)
def changer():
texte_var.set("État : actif") # le label se met à jour seul
tk.Button(fenetre, text="Activer", command=changer).pack()
fenetre.mainloop()
La différence entre les deux approches est surtout une question de lisibilité. config() est plus direct pour un changement ponctuel. StringVar devient intéressant quand plusieurs widgets partagent la même valeur ou quand vous voulez observer les changements depuis plusieurs endroits du code.
Options utiles à connaître
Quelques paramètres qu'on cherche souvent sans savoir comment ils s'appellent : padx et pady ajoutent un espace interne autour du texte dans le widget lui-même (à ne pas confondre avec les paramètres du même nom dans pack(), qui agissent sur l'espace extérieur). anchor contrôle l'alignement du texte dans l'espace alloué au widget — "w" pour gauche, "e" pour droite, "center" pour centré. relief et bd ajoutent une bordure, comme pour les Frame.
La suite logique : le widget Button, qui fonctionne de façon similaire mais déclenche une action au clic.
Par carabde | Mis à jour le 30 avril 2025