OUJOOD.COM
Avant d'afficher des boutons ou des champs de saisie, il faut une fenêtre. C'est le point de départ de toute application Tkinter : créer un objet Tk(), lui donner une taille, puis lancer la boucle d'événements.
La structure minimale
Trois lignes suffisent pour ouvrir une fenêtre vide :
import tkinter as tk fenetre = tk.Tk() fenetre.mainloop()
En exécutant ce script, une fenêtre grise apparaît. Elle reste ouverte tant que vous ne la fermez pas — c'est le rôle de mainloop() : garder le programme en vie et écouter les actions de l'utilisateur (clics, frappes clavier, fermeture).
Donner un titre et une taille
Une fenêtre sans titre s'appelle « tk » par défaut. On corrige ça avec title(), et on fixe les dimensions avec geometry() :
import tkinter as tk
fenetre = tk.Tk()
fenetre.title("Mon application")
fenetre.geometry("400x300") # largeur x hauteur en pixels
fenetre.mainloop()
La chaîne passée à geometry() suit le format "LargeurxHauteur" — le séparateur est bien la lettre x, pas le signe multiplier. On peut aussi ajouter une position à l'écran : "400x300+100+50" place la fenêtre à 100 px du bord gauche et 50 px du bord supérieur.
Ce qui se passe derrière mainloop()
Beaucoup de débutants se demandent pourquoi le code après mainloop() ne s'exécute pas. La réponse est simple : mainloop() est une boucle bloquante. Tant que la fenêtre est ouverte, l'interpréteur reste coincé là. Ce n'est qu'à la fermeture que l'exécution reprend — si tant est qu'il reste du code.
Cette architecture est commune à tous les frameworks graphiques, pas seulement Tkinter. Vous la retrouverez dans Pygame (voir Matplotlib pour la visualisation de données) ou dans tout autre outil qui gère une interface.
Exemple complet avec commentaires
import tkinter as tk # Création de la fenêtre principale fenetre = tk.Tk() # Titre affiché dans la barre du système fenetre.title("Première fenêtre") # Dimensions : 500 px de large, 350 px de haut fenetre.geometry("500x350") # Couleur de fond (optionnel) fenetre.configure(bg="#f0f0f0") # Lancement de la boucle d'événements — bloquant fenetre.mainloop()
À ce stade la fenêtre est vide. La prochaine étape consiste à y ajouter des widgets — on commence souvent par un Label ou un Button.
Rappel sur l'import
Deux styles d'import coexistent dans les tutoriels que vous trouverez en ligne :
# Style 1 : recommandé, évite les conflits de noms import tkinter as tk fenetre = tk.Tk() # Style 2 : pratique pour les petits scripts, déconseillé en production from tkinter import * fenetre = Tk()
Le premier style est préférable dès que votre code dépasse quelques lignes : il rend explicite l'origine de chaque élément et évite que Button ou Entry écrasent des noms déjà utilisés dans votre script.
Si vous souhaitez comparer cette approche avec d'autres bibliothèques de visualisation Python, jetez un œil à Pandas ou NumPy — des outils différents, mais qui s'interfacent souvent avec des interfaces Tkinter dans des projets réels.
Par carabde | Mis à jour le 30 avril 2025