Tous les cours gratuit

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

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
Manipulation des Tableaux en Python - Pandas
Python propose plusieurs façons de manipuler des tableaux en Python...
Read more
AZ

Recent Posts

Lettre Offre Commerciale Professionnelle : 10 Modèles

L’offre commerciale est un élément essentiel dans le développement de toute relation d’affaires. Bien conçue,…

5 heures ago

Comment personnaliser une proposition commerciale ?

Pour qu'une proposition commerciale soit percutante et engageante, elle doit être personnalisée en fonction des…

5 heures ago

Exemples de Proposition Commerciale – Modèle Standard à Suivre

Le contexte d'une proposition commerciale professionnelle est la base qui permet d’établir la pertinence de…

14 heures ago

Réponse Positive à une Proposition d’Embauche : Exemples

Recevoir une proposition d’embauche est toujours un moment gratifiant. C’est l’aboutissement d’un processus souvent long…

14 heures ago

Comment Refuser Poliment une Offre Commerciale ?

10 Modèles de lettres pour Refuser Poliment une Offre Commerciale 👇 Refuser une offre commerciale…

14 heures ago

Feuille de Route Produit : Planification et le Suivi du Développement de Produits

La feuille de route produit est un document stratégique qui guide le développement, le lancement,…

15 heures ago

This website uses cookies.