« Python : Tkinter » : différence entre les versions
De www.yakakliker.org
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 86 : | Ligne 86 : | ||
fenetre.mainloop() | fenetre.mainloop() | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Analyse des ajouts ==== | |||
* '''<code>command=fenetre.destroy</code>''' : Cette méthode ordonne à Tkinter de fermer la fenêtre et d'arrêter la boucle <code>mainloop</code>. C'est la manière propre de fermer une application. | |||
* '''<code>fg</code> et <code>bg</code>''' : Ce sont les abréviations de ''Foreground'' (couleur du texte) et ''Background'' (couleur de fond). Cela vous permet de personnaliser l'apparence de vos boutons. | |||
* '''La logique de placement''' : Le bouton "Quitter" apparaît en dernier car il est le dernier à être "packé" (<code>.pack()</code>). | |||
[[Catégorie:Python]] | [[Catégorie:Python]] | ||
[[Catégorie:Scripts]] | [[Catégorie:Scripts]] | ||
Version du 21 janvier 2026 à 15:13
Passer de la console à une interface graphique (GUI) est une étape passionnante. En Python, l'outil standard inclus par défaut s'appelle Tkinter.
Contrairement à un script classique qui s'exécute de haut en bas, une interface graphique fonctionne avec une boucle d'événements (event loop) : le programme "attend" que l'utilisateur clique sur un bouton ou tape du texte.
Les concepts de base de Tkinter
Pour créer une fenêtre, nous manipulons des Widgets (composants graphiques) :
- Tk : La fenêtre principale.
- Label : Un texte affiché.
- Entry : Un champ de saisie de texte.
- Button : Un bouton cliquable.
- Listbox : Une zone pour afficher notre liste d'invités.
Exemple
import tkinter as tk
def dire_bonjour():
nom = entree.get() # On récupère le texte de la saisie
label_resultat.config(text=f"Bonjour {nom} !")
# 1. Création de la fenêtre
fenetre = tk.Tk()
fenetre.title("Mon Premier Programme")
fenetre.geometry("300x200")
# 2. Ajout des composants
label_instruction = tk.Label(fenetre, text="Entrez votre nom :")
label_instruction.pack(pady=10)
entree = tk.Entry(fenetre)
entree.pack()
bouton = tk.Button(fenetre, text="Valider", command=dire_bonjour)
bouton.pack(pady=10)
label_resultat = tk.Label(fenetre, text="")
label_resultat.pack()
# 3. Lancement de la boucle principale
fenetre.mainloop()
Analyse factuelle du fonctionnement
.pack(): C'est un gestionnaire de géométrie. Il place les éléments les uns en dessous des autres.command=dire_bonjour: On lie le bouton à une fonction. Notez qu'on ne met pas de parenthèses()à la fonction ici, car on veut que le bouton l'appelle plus tard, au moment du clic..mainloop(): Cette ligne est cruciale. Elle empêche la fenêtre de se fermer immédiatement et permet à Python d'écouter les clics de souris.
Ajout d'un bouton "Quitter" à l'interface
import tkinter as tk
def dire_bonjour():
nom = entree.get()
if nom.strip():
label_resultat.config(text=f"Bonjour {nom} !", fg="blue")
else:
label_resultat.config(text="Veuillez entrer un nom", fg="red")
# 1. Création de la fenêtre
fenetre = tk.Tk()
fenetre.title("Mon Premier Programme")
fenetre.geometry("300x250")
# 2. Ajout des composants
label_instruction = tk.Label(fenetre, text="Entrez votre nom :")
label_instruction.pack(pady=10)
entree = tk.Entry(fenetre)
entree.pack()
bouton = tk.Button(fenetre, text="Valider", command=dire_bonjour)
bouton.pack(pady=10)
label_resultat = tk.Label(fenetre, text="")
label_resultat.pack()
# --- AJOUT DU BOUTON QUITTER ---
# On utilise directement fenetre.destroy comme commande
bouton_quitter = tk.Button(fenetre, text="Quitter", command=fenetre.destroy, fg="white", bg="red")
bouton_quitter.pack(pady=20)
# 3. Lancement de la boucle principale
fenetre.mainloop()
Analyse des ajouts
command=fenetre.destroy: Cette méthode ordonne à Tkinter de fermer la fenêtre et d'arrêter la bouclemainloop. C'est la manière propre de fermer une application.fgetbg: Ce sont les abréviations de Foreground (couleur du texte) et Background (couleur de fond). Cela vous permet de personnaliser l'apparence de vos boutons.- La logique de placement : Le bouton "Quitter" apparaît en dernier car il est le dernier à être "packé" (
.pack()).