Créer des applications Python interactives avec Tkinter

Tkinter est la bibliothèque standard de Python pour la création d'interfaces utilisateur graphiques (GUI). Elle offre un moyen simple de créer des applications interactives avec des fenêtres, des boutons, des champs de texte, etc. Cet article vous guidera à travers les bases de Tkinter et vous montrera comment créer une application interactive simple.

Démarrer avec Tkinter

Pour utiliser Tkinter, vous devez d'abord importer le module. Tkinter est fourni avec Python, aucune installation supplémentaire n'est donc requise. Voici un exemple de base pour créer une fenêtre avec un titre:

import tkinter as tk

# Create the main window
root = tk.Tk()
root.title("My First Tkinter App")

# Start the event loop
root.mainloop()

Créer des widgets

Les widgets sont les éléments de base d'une application Tkinter. Les widgets courants incluent les étiquettes, les boutons, les entrées de texte, etc. Chaque widget peut être personnalisé et placé dans la fenêtre à l'aide de gestionnaires de disposition.

Ajout d'une étiquette

Un widget d'étiquette affiche du texte ou des images. Voici comment ajouter une étiquette simple à la fenêtre:

label = tk.Label(root, text="Hello, Tkinter!")
label.pack()  # Pack widget into the window

Ajout d'un bouton

Les boutons permettent aux utilisateurs d'effectuer des actions. Vous pouvez définir une fonction de rappel qui s'exécute lorsque le bouton est enfoncé:

def on_button_click():
    label.config(text="Button Clicked!")

button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack()

Gestion de la mise en page

Tkinter fournit plusieurs gestionnaires de disposition pour contrôler le placement des widgets. Les gestionnaires les plus couramment utilisés sont pack, grid et place.

Utilisation du gestionnaire de packs

Le gestionnaire pack organise les widgets en blocs avant de les placer dans le widget parent. Les widgets sont placés les uns après les autres:

label1 = tk.Label(root, text="First Label")
label1.pack()

label2 = tk.Label(root, text="Second Label")
label2.pack()

Utilisation du gestionnaire de grille

Le gestionnaire grid place les widgets dans une structure de type tableau en utilisant des lignes et des colonnes:

label1 = tk.Label(root, text="Name:")
label1.grid(row=0, column=0)

entry1 = tk.Entry(root)
entry1.grid(row=0, column=1)

button = tk.Button(root, text="Submit")
button.grid(row=1, column=0, columnspan=2)

Gestion des événements

Les événements sont des actions qui se produisent dans l'application, comme des clics sur des boutons ou des pressions sur des touches. Tkinter vous permet de lier des gestionnaires d'événements à des widgets. Voici un exemple de liaison d'un événement de pression de touche à une fonction:

def on_key_press(event):
    print(f"Key pressed: {event.keysym}")

root.bind("", on_key_press)

Créer une application simple

Mettons tout cela ensemble et créons une application interactive simple qui prend les entrées de l'utilisateur et les affiche en cliquant sur un bouton:

import tkinter as tk

def show_message():
    message = entry.get()
    label.config(text=f"Message: {message}")

# Create the main window
root = tk.Tk()
root.title("Simple Application")

# Create widgets
label = tk.Label(root, text="Enter something:")
label.pack()

entry = tk.Entry(root)
entry.pack()

button = tk.Button(root, text="Show Message", command=show_message)
button.pack()

# Start the event loop
root.mainloop()

Conclusion

Tkinter est un outil polyvalent pour créer des applications graphiques en Python. En comprenant les bases des widgets, de la gestion de la mise en page et de la gestion des événements, vous pouvez créer des applications interactives et conviviales. Au fur et à mesure que vous vous familiariserez avec Tkinter, vous pourrez explorer ses fonctionnalités avancées et personnaliser vos applications en fonction de vos besoins.