« Python : Tkinter » : différence entre les versions
De www.yakakliker.org
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| Ligne 48 : | Ligne 48 : | ||
* '''<code>.mainloop()</code>''' : Cette ligne est cruciale. Elle empêche la fenêtre de se fermer immédiatement et permet à Python d'écouter les clics de souris. | * '''<code>.mainloop()</code>''' : 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 === | |||
<syntaxhighlight lang="python3"> | |||
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() | |||
</syntaxhighlight> | |||
[[Catégorie:Python]] | [[Catégorie:Python]] | ||
[[Catégorie:Scripts]] | [[Catégorie:Scripts]] | ||
Version du 21 janvier 2026 à 15:11
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()