Python

Boutons tkinter en Python : Guide Complet et Exemples Pratiques

Dans ce guide, nous allons nous concentrer sur les boutons tkinter.

💡 Tkinter est une bibliothèque standard de Python utilisée pour créer des interfaces graphiques utilisateur (GUI). Elle offre une variété de widgets, y compris des boutons, des étiquettes, des entrées de texte, etc.

Création d’une fenêtre tkinter :

Tout d’abord, pour utiliser tkinter, vous devez importer le module tkinter. Ensuite, vous pouvez créer une fenêtre en instanciant la classe Tk :

import tkinter as tk

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Ma première application tkinter")
Création d’un bouton tkinter

Pour créer un bouton tkinter, utilisez la classe Button. Vous devez spécifier le parent du bouton (dans ce cas, la fenêtre principale), ainsi que le texte à afficher sur le bouton :

# Création d'un bouton
bouton = tk.Button(fenetre, text="Cliquez-moi")
Affichage du bouton

Une fois que vous avez créé le bouton, vous devez l’afficher à l’aide de la méthode pack, grid ou place :

# Affichage du bouton à l'aide de la méthode pack
bouton.pack()

# Ou à l'aide de la méthode grid
# bouton.grid(row=0, column=0)

# Ou à l'aide de la méthode place
# bouton.place(x=50, y=50)
Ajout d’une action au bouton

Pour ajouter une action à un bouton, vous pouvez spécifier une fonction à exécuter lorsque le bouton est cliqué en utilisant le paramètre command :

# Définition de la fonction à exécuter lors du clic sur le bouton
def action():
    print("Le bouton a été cliqué !")

# Ajout de l'action au bouton
bouton.config(command=action)
Personnalisation du bouton

Vous pouvez personnaliser l’apparence du bouton en utilisant les options de configuration disponibles, telles que bg pour la couleur d’arrière-plan, fg pour la couleur du texte, font pour la police de caractères, etc. :

# Personnalisation du bouton
bouton.config(bg="blue", fg="white", font=("Arial", 12))
Exemple complet

Voici un exemple complet de création d’une fenêtre tkinter avec un bouton qui affiche un message dans la console lorsque le bouton est cliqué :

import tkinter as tk

# Fonction à exécuter lors du clic sur le bouton
def action():
    print("Le bouton a été cliqué !")

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Ma première application tkinter")

# Création du bouton
bouton = tk.Button(fenetre, text="Cliquez-moi", command=action)
bouton.pack()

# Personnalisation du bouton
bouton.config(bg="blue", fg="white", font=("Arial", 12))

# Lancement de la boucle principale de la fenêtre
fenetre.mainloop()

Ce guide devrait vous aider à démarrer avec les boutons tkinter en Python. Vous pouvez l’adapter et l’étendre selon vos besoins pour créer des interfaces utilisateur plus complexes.

Exemples pratiques d’utilisation des boutons tkinter en Python
Exemple 1 : Calculatrice simple
import tkinter as tk

# Fonctions pour les opérations de la calculatrice
def ajouter_nombre(nombre):
    expression.set(expression.get() + str(nombre))

def effacer():
    expression.set("")

def calculer():
    try:
        resultat = eval(expression.get())
        expression.set(resultat)
    except:
        expression.set("Erreur")

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Calculatrice")

# Variable pour stocker l'expression de la calculatrice
expression = tk.StringVar()

# Zone de texte pour afficher l'expression
entree = tk.Entry(fenetre, textvariable=expression)
entree.grid(row=0, column=0, columnspan=4)

# Création des boutons pour les nombres et les opérations
for i in range(1, 10):
    tk.Button(fenetre, text=str(i), command=lambda i=i: ajouter_nombre(i)).grid(row=(i-1)//3 + 1, column=(i-1)%3)
tk.Button(fenetre, text="0", command=lambda: ajouter_nombre(0)).grid(row=4, column=1)
tk.Button(fenetre, text="C", command=effacer).grid(row=4, column=0)
tk.Button(fenetre, text="=", command=calculer).grid(row=4, column=2)
tk.Button(fenetre, text="+", command=lambda: ajouter_nombre("+")).grid(row=1, column=3)
tk.Button(fenetre, text="-", command=lambda: ajouter_nombre("-")).grid(row=2, column=3)
tk.Button(fenetre, text="*", command=lambda: ajouter_nombre("*")).grid(row=3, column=3)
tk.Button(fenetre, text="/", command=lambda: ajouter_nombre("/")).grid(row=4, column=3)

# Lancement de la boucle principale de la fenêtre
fenetre.mainloop()
Exemple 2 : Gestionnaire de tâches
import tkinter as tk

# Fonction pour ajouter une tâche à la liste
def ajouter_tache():
    tache = entree.get()
    if tache:
        liste_taches.insert(tk.END, tache)
        entree.delete(0, tk.END)

# Fonction pour supprimer une tâche sélectionnée
def supprimer_tache():
    selection = liste_taches.curselection()
    if selection:
        liste_taches.delete(selection)

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Gestionnaire de Tâches")

# Zone de texte pour saisir une nouvelle tâche
entree = tk.Entry(fenetre)
entree.pack()

# Bouton pour ajouter une nouvelle tâche
tk.Button(fenetre, text="Ajouter", command=ajouter_tache).pack()

# Liste des tâches
liste_taches = tk.Listbox(fenetre)
liste_taches.pack()

# Bouton pour supprimer une tâche sélectionnée
tk.Button(fenetre, text="Supprimer", command=supprimer_tache).pack()

# Lancement de la boucle principale de la fenêtre
fenetre.mainloop()

Ces exemples illustrent quelques façons pratiques d’utiliser les boutons tkinter pour créer des applications simples en Python. Vous pouvez les étendre et les personnaliser selon vos besoins spécifiques.

Exemples pratiques avec du code utilisant des boutons tkinter en Python c
Exemple 1 : Convertisseur de température
import tkinter as tk

def convertir():
    try:
        temperature = float(entree_temp.get())
        if var_conversion.get() == 1:  # Conversion de Celsius à Fahrenheit
            resultat = (temperature * 9/5) + 32
            label_resultat.config(text=f"{temperature} °C = {resultat} °F")
        else:  # Conversion de Fahrenheit à Celsius
            resultat = (temperature - 32) * 5/9
            label_resultat.config(text=f"{temperature} °F = {resultat} °C")
    except ValueError:
        label_resultat.config(text="Entrée invalide")

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Convertisseur de Température")

# Zone de saisie pour la température
entree_temp = tk.Entry(fenetre)
entree_temp.grid(row=0, column=0)

# Boutons radio pour choisir l'unité de température
var_conversion = tk.IntVar()
radio_celsius = tk.Radiobutton(fenetre, text="Celsius", variable=var_conversion, value=1)
radio_celsius.grid(row=0, column=1)
radio_fahrenheit = tk.Radiobutton(fenetre, text="Fahrenheit", variable=var_conversion, value=2)
radio_fahrenheit.grid(row=0, column=2)

# Bouton pour effectuer la conversion
bouton_convertir = tk.Button(fenetre, text="Convertir", command=convertir)
bouton_convertir.grid(row=1, column=0, columnspan=3)

# Étiquette pour afficher le résultat
label_resultat = tk.Label(fenetre, text="")
label_resultat.grid(row=2, column=0, columnspan=3)

# Lancement de la boucle principale de la fenêtre
fenetre.mainloop()
Exemple 2 : Jeu de devinette
import tkinter as tk
import random

def deviner():
    try:
        nombre_devine = int(entree_nombre.get())
        if nombre_devine == nombre_a_deviner:
            label_resultat.config(text="Bravo ! Vous avez deviné le bon nombre.")
        elif nombre_devine < nombre_a_deviner:
            label_resultat.config(text="Le nombre à deviner est plus grand.")
        else:
            label_resultat.config(text="Le nombre à deviner est plus petit.")
    except ValueError:
        label_resultat.config(text="Entrée invalide")

def generer_nombre():
    global nombre_a_deviner
    nombre_a_deviner = random.randint(1, 100)
    label_resultat.config(text="Un nouveau nombre a été généré.")

# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Jeu de Devinette")

# Bouton pour générer un nouveau nombre
bouton_generer = tk.Button(fenetre, text="Générer un nombre", command=generer_nombre)
bouton_generer.pack()

# Zone de saisie pour deviner le nombre
entree_nombre = tk.Entry(fenetre)
entree_nombre.pack()

# Bouton pour soumettre la supposition
bouton_deviner = tk.Button(fenetre, text="Devinez", command=deviner)
bouton_deviner.pack()

# Étiquette pour afficher le résultat
label_resultat = tk.Label(fenetre, text="")
label_resultat.pack()

# Lancement de la boucle principale de la fenêtre
fenetre.mainloop()

Ces exemples illustrent deux utilisations pratiques des boutons tkinter en Python : un convertisseur de température et un jeu de devinette. Vous pouvez les exécuter pour voir comment ils fonctionnent et les adapter selon vos besoins spécifiques.

Autres articles

Maîtriser l'utilisation de la méthode join en...
La méthode join en Python est un outil puissant pour...
Read more
Comment Gérer Efficacement le Budget Mariage avec...
Télécharger un modèle Excel automatisé de budget mariage automatisé avec...
Read more
Manipulation des Tableaux en Python avec Numpy
Numpy est une bibliothèque puissante et efficace pour la manipulation...
Read more
AZ

Recent Posts

Guide : Types d’Écarts dans Excel et Comment les Calculer

Excel permet de calculer différents types d'écarts selon le contexte, que ce soit pour des…

4 minutes ago

Guide : Comment activer les macros dans Microsoft Excel

Les macros sont des programmes ou des scripts utilisés pour automatiser des tâches dans Excel.…

15 minutes ago

Guide : Calcul de l’Écart-Type dans Excel

L’écart-type est une mesure statistique qui indique la dispersion des données par rapport à leur…

26 minutes ago

Guide : Suivi et Calcul des Écarts sur la Composition des Ventes dans Excel

La composition des ventes fait référence à la répartition des ventes entre différents produits, catégories…

55 minutes ago

Guide : Calculer un écart en pourcentage dans Excel

L’écart en pourcentage permet de comparer une valeur réelle par rapport à une valeur attendue,…

1 heure ago

Les Écarts sur Charges Fixes : Explication

Les écarts sur charges fixes permettent d'analyser les différences entre les charges fixes budgétées et…

6 heures ago

This website uses cookies.