Créer des interfaces graphiques (GUI) est une étape cruciale dans le développement d’applications utilisateur conviviales. En Python, Tkinter est une bibliothèque standard qui facilite la création de telles interfaces. Tkinter est léger, facile à utiliser, et fait partie intégrante de la distribution standard de Python. Dans cet article, nous explorerons comment utiliser Tkinter pour créer des interfaces graphiques en Python, en partant des bases et en abordant des concepts plus avancés.
1. Introduction à Tkinter
Tkinter est une interface Python pour le toolkit GUI Tk. Il permet de créer des fenêtres, des boutons, des étiquettes, et d’autres éléments de l’interface utilisateur avec un minimum de code. Tkinter est inclus avec Python, donc vous n’avez pas besoin d’installer de packages supplémentaires pour l’utiliser.
1.1. Pourquoi Utiliser Tkinter ?
- Simplicité : Tkinter offre une API simple et intuitive pour créer des interfaces graphiques.
- Portabilité : Les applications Tkinter fonctionnent sur toutes les plateformes principales : Windows, macOS et Linux.
- Intégration : Étant une bibliothèque standard, Tkinter s’intègre facilement avec le reste de l’écosystème Python.
2. Installation et Configuration
Tkinter est inclus avec Python, donc aucune installation supplémentaire n’est généralement nécessaire. Assurez-vous simplement d’avoir Python installé sur votre système.
3. Créer une Interface Graphique de Base avec Tkinter
Voyons comment créer une application simple avec Tkinter, comprenant une fenêtre, un bouton et une étiquette.
3.1. Code de Base
Créez un fichier Python nommé app.py
et ajoutez le code suivant :
import tkinter as tk
# Créer la fenêtre principale
root = tk.Tk()
root.title("Mon Application Tkinter")
# Créer une étiquette
label = tk.Label(root, text="Bonjour, Tkinter!")
label.pack()
# Créer un bouton
button = tk.Button(root, text="Cliquez-moi", command=lambda: label.config(text="Bouton cliqué!"))
button.pack()
# Lancer l'application
root.mainloop()
3.2. Explication du Code
tk.Tk()
: Crée une instance de la fenêtre principale.root.title("Mon Application Tkinter")
: Définit le titre de la fenêtre.tk.Label(root, text="Bonjour, Tkinter!")
: Crée une étiquette avec le texte « Bonjour, Tkinter! ».label.pack()
: Ajoute l’étiquette à la fenêtre et la rend visible.tk.Button(root, text="Cliquez-moi", command=lambda: label.config(text="Bouton cliqué!"))
: Crée un bouton qui change le texte de l’étiquette lorsqu’il est cliqué.root.mainloop()
: Démarre la boucle principale de l’application, qui attend les interactions de l’utilisateur.
4. Gestion des Événements et Interactions
Tkinter permet de gérer divers événements, tels que les clics de souris et les frappes clavier. Voici comment ajouter des interactions supplémentaires.
4.1. Ajouter un Champ de Texte et un Bouton
Modifiez app.py
pour inclure un champ de texte et un bouton qui affiche le texte saisi dans une étiquette :
import tkinter as tk
def afficher_texte():
texte = entry.get()
label.config(text=texte)
# Créer la fenêtre principale
root = tk.Tk()
root.title("Mon Application Tkinter")
# Créer une étiquette
label = tk.Label(root, text="Entrez quelque chose :")
label.pack()
# Créer un champ de texte
entry = tk.Entry(root)
entry.pack()
# Créer un bouton
button = tk.Button(root, text="Afficher", command=afficher_texte)
button.pack()
# Lancer l'application
root.mainloop()
4.2. Explication du Code
entry = tk.Entry(root)
: Crée un champ de texte où l’utilisateur peut saisir des données.entry.get()
: Récupère le texte saisi par l’utilisateur dans le champ de texte.afficher_texte()
: Fonction appelée lorsque le bouton est cliqué, qui met à jour le texte de l’étiquette avec le texte saisi.
5. Disposer les Widgets avec les Layout Managers
Tkinter propose plusieurs gestionnaires de mise en page pour organiser les widgets dans la fenêtre.
5.1. Gestionnaire pack
Le gestionnaire pack
place les widgets dans l’ordre où ils sont ajoutés, les empilant les uns au-dessus des autres ou côte à côte.
5.2. Gestionnaire grid
Le gestionnaire grid
permet de placer les widgets dans une grille, ce qui donne plus de contrôle sur leur positionnement.
Voici un exemple utilisant grid
pour créer une simple calculatrice :
import tkinter as tk
def addition():
try:
result = float(entry1.get()) + float(entry2.get())
result_label.config(text=f"Résultat: {result}")
except ValueError:
result_label.config(text="Veuillez entrer des nombres valides.")
# Créer la fenêtre principale
root = tk.Tk()
root.title("Calculatrice")
# Créer les widgets
tk.Label(root, text="Nombre 1").grid(row=0, column=0)
tk.Label(root, text="Nombre 2").grid(row=1, column=0)
entry1 = tk.Entry(root)
entry2 = tk.Entry(root)
entry1.grid(row=0, column=1)
entry2.grid(row=1, column=1)
tk.Button(root, text="Additionner", command=addition).grid(row=2, columnspan=2)
result_label = tk.Label(root, text="Résultat:")
result_label.grid(row=3, columnspan=2)
# Lancer l'application
root.mainloop()
5.3. Explication du Code
tk.Label(root, text="Nombre 1").grid(row=0, column=0)
: Place une étiquette à la position (0,0) dans la grille.entry1.grid(row=0, column=1)
: Place le champ de texte à la position (0,1) dans la grille.tk.Button(root, text="Additionner", command=addition).grid(row=2, columnspan=2)
: Place un bouton à la position (2,0) et occupe deux colonnes.
6. Personnalisation et Style
Tkinter permet également de personnaliser l’apparence des widgets en utilisant des options telles que la couleur, la police et les bordures.
6.1. Exemple de Personnalisation
import tkinter as tk
# Créer la fenêtre principale
root = tk.Tk()
root.title("Interface Personnalisée")
# Créer une étiquette
label = tk.Label(root, text="Texte Stylé", font=("Arial", 16), fg="blue", bg="lightyellow")
label.pack(pady=20)
# Créer un bouton
button = tk.Button(root, text="Cliquez-moi", font=("Arial", 12), bg="green", fg="white")
button.pack(pady=10)
# Lancer l'application
root.mainloop()
6.2. Explication du Code
font=("Arial", 16)
: Définit la police et la taille du texte.fg="blue"
: Définit la couleur du texte.bg="lightyellow"
: Définit la couleur de fond du widget.pady=20
: Ajoute un espacement vertical autour du widget.
7. Conclusion
Tkinter est un excellent choix pour créer des interfaces graphiques en Python, surtout pour les débutants. Sa simplicité et son intégration avec Python en font un outil puissant pour construire des applications de bureau. Avec les compétences acquises dans cet article, vous pouvez créer des interfaces interactives, gérer les événements utilisateur, et personnaliser l’apparence de vos applications. En explorant davantage Tkinter, vous pourrez développer des applications graphiques plus complexes et sophistiquées.
Abonnez-vous à notre Newsletter !
Restez à jour avec les dernières tendances, articles et actualités directement dans votre boîte de réception. En vous abonnant à la newsletter de Wordly Fusion, vous recevrez des contenus exclusifs, des recommandations personnalisées, et les nouveautés les plus passionnantes de notre site. Ne manquez aucune mise à jour et soyez toujours informé des sujets qui vous intéressent. Inscrivez-vous dès maintenant pour rejoindre notre communauté !