Python - Programmation GUI : Guide Ultime pour les Débutants sur la Création d'Interfaces Utilisateur Graphiques
Bonjour à toi, aspirant programmeur ! Es-tu prêt à embarquer dans un voyage passionnant dans le monde de la programmation GUI avec Python ? En tant que ton enseignant en informatique de quartier, je suis là pour te guider à travers le royaume fascinant de la création d'interfaces utilisateur graphiques en utilisant Python. Ne t'inquiète pas si tu as jamais écrit une ligne de code auparavant – nous allons commencer par les bases et travailler notre chemin vers le haut. Alors, prends une tasse de ton boisson préférée, installe-toi confortablement, et plongeons-y !
Programmation Tkinter : Ta Porte d'Entrée dans la Création de GUI
Qu'est-ce que Tkinter ?
Tkinter est comme le couteau suisse de la programmation GUI en Python. C'est un module intégré qui est pré-installé avec Python, ce qui rend son utilisation incroyablement facile. Penses à Tkinter comme à ta boîte à outils fiable pour construire des fenêtres, des boutons, des champs de texte et tous sorts d'éléments interactifs dans tes programmes.
Ton Premier Programme Tkinter
Commençons par un exemple simple pour nous initier :
import tkinter as tk
root = tk.Tk()
root.title("Ma Première GUI")
label = tk.Label(root, text="Bonjour, Tkinter !")
label.pack()
root.mainloop()
Analysons cela :
- Nous importons le module tkinter et lui donnons l'alias 'tk' pour plus de commodité.
-
tk.Tk()
crée notre fenêtre principale. - Nous définissons le titre de la fenêtre avec
root.title()
. - Nous créons un widget d'étiquette avec du texte.
- La méthode
pack()
ajoute notre étiquette à la fenêtre. - Enfin,
mainloop()
démarre la boucle d'événements, ce qui garde notre fenêtre ouverte et réactive.
Exécute ce code, et voilà ! Tu viens de créer ta première application GUI. C'est assez cool, non ?
Widgets Tkinter : Les Blocs de Construction de Ta GUI
Les widgets sont les éléments individuels qui composent ta GUI. Ils sont comme les briques LEGO de la conception d'interface. Explorons certains widgets courants :
Boutons
Les boutons sont probablement le widget le plus familier. Voici comment en créer un :
import tkinter as tk
def button_click():
print("Bouton cliqué !")
root = tk.Tk()
bouton = tk.Button(root, text="Clique-moi !", command=button_click)
bouton.pack()
root.mainloop()
Dans cet exemple, nous avons créé un bouton qui imprime un message lorsque l'on clique dessus. Le paramètre command
relie le bouton à la fonction button_click
.
Widgets d'Entrée
Les widgets d'entrée permettent aux utilisateurs de saisir du texte :
import tkinter as tk
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
root.mainloop()
Cela crée un simple champ de saisie de texte. Tu peux récupérer le texte avec entry.get()
.
Attributs Standard : Personnalisation de Tes Widgets
Les widgets ont divers attributs que tu peux personnaliser. Voici quelques-uns des plus courants :
Attribut | Description | Exemple |
---|---|---|
bg |
Couleur de fond | bouton = tk.Button(root, text="Clique", bg="bleu") |
fg |
Couleur de premier plan (texte) | étiquette = tk.Label(root, text="Bonjour", fg="rouge") |
font |
Police et taille du texte | étiquette = tk.Label(root, text="Grand", font=("Arial", 20)) |
width |
Largeur du widget | entry = tk.Entry(root, width=30) |
height |
Hauteur du widget | texte = tk.Text(root, height=5) |
Gestion de la Géométrie : Arrangement de Tes Widgets
Tkinter offre trois gestionnaires de géométrie principaux pour arranger les widgets dans ta fenêtre :
Pack
Nous avons déjà vu pack()
en action. C'est le moyen le plus simple d'ajouter des widgets :
import tkinter as tk
root = tk.Tk()
étiquette1 = tk.Label(root, text="Premier")
étiquette2 = tk.Label(root, text="Deuxième")
étiquette1.pack()
étiquette2.pack()
root.mainloop()
Cela empile les widgets verticalement.
Grid
Grid permet un placement plus précis :
import tkinter as tk
root = tk.Tk()
étiquette1 = tk.Label(root, text="Nom :")
entry1 = tk.Entry(root)
étiquette2 = tk.Label(root, text="Mot de passe :")
entry2 = tk.Entry(root, show="*")
étiquette1.grid(row=0, column=0)
entry1.grid(row=0, column=1)
étiquette2.grid(row=1, column=0)
entry2.grid(row=1, column=1)
root.mainloop()
Cela crée un simple formulaire de connexion avec des étiquettes et des entrées alignées dans une grille.
Place
Place te donne un contrôle absolu sur la position des widgets :
import tkinter as tk
root = tk.Tk()
bouton = tk.Button(root, text="Bouton Centré")
bouton.place(relx=0.5, rely=0.5, anchor="center")
root.mainloop()
Cela place un bouton au centre de la fenêtre.
SimpleDialog : Fenêtres de Dialogue Rapides et Faciles
SimpleDialog est génial pour créer des fenêtres contextuelles rapides :
from tkinter import simpledialog
résultat = simpledialog.askstring("Entrée", "Quel est ton nom ?")
print(f"Bonjour, {résultat} !")
Cela crée une boîte de dialogue demandant le nom de l'utilisateur.
Le Module FileDialog : Travailler avec des Fichiers
FileDialog t'aide à créer des dialogues d'ouverture et d'enregistrement de fichiers :
from tkinter import filedialog
chemin_fichier = filedialog.askopenfilename()
print(f"Tu as sélectionné : {chemin_fichier}")
Cela ouvre une boîte de dialogue de sélection de fichiers et imprime le chemin du fichier choisi.
Le Module ttk : Widgets Thématisés
Le module ttk offre des widgets thématisés qui ont un look plus moderne :
from tkinter import ttk
root = tk.Tk()
bouton = ttk.Button(root, text="Bouton Thématisé")
bouton.pack()
root.mainloop()
Widget Combobox
Combobox est une combinaison d'un champ de saisie et d'une liste déroulante :
from tkinter import ttk
root = tk.Tk()
combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack()
root.mainloop()
Barre de Progression
La barre de progression est géniale pour montrer la progression des tâches :
from tkinter import ttk
root = tk.Tk()
progress = ttk.Progressbar(root, length=200, mode='déterminé')
progress.pack()
progress['value'] = 50 # Définir la progression à 50%
root.mainloop()
Sizegrip
Sizegrip permet aux utilisateurs de redimensionner les fenêtres :
from tkinter import ttk
root = tk.Tk()
sizegrip = ttk.Sizegrip(root)
sizegrip.pack(side="right", anchor="se")
root.mainloop()
Séparateur
Le séparateur est utilisé pour séparer visuellement les widgets :
from tkinter import ttk
root = tk.Tk()
étiquette1 = tk.Label(root, text="Au-dessus")
séparateur = ttk.Separator(root, orient='horizontal')
étiquette2 = tk.Label(root, text="En-dessous")
étiquette1.pack()
séparateur.pack(fill='x')
étiquette2.pack()
root.mainloop()
Et voilà ! Nous avons couvert les bases de la programmation GUI en Python utilisant Tkinter. souviens-toi, la pratique fait le maître, alors n'aie pas peur d'expérimenter et de créer tes propres GUI. Qui sait ? Ton prochain projet pourrait être l'application la plus populaire que tout le monde parle de !
Bon codage, futurs sorciers GUI ! ?♂️??
Credits: Image by storyset