×

Créé une application de gestion de taches avec Python Tkinter et ttkbootstrap

Créé une application de gestion de taches avec Python Tkinter et ttkbootstrap

TTK Bootstrap est une bibliothèque qui combine le framework de conception Bootstrap avec le module de thème « ttkthemes » pour Tkinter en Python. Vous pouvez l’utiliser pour créer des applications de bureau avec une interface utilisateur moderne en utilisant Tkinter. Voici un tutoriel pour découvrir certaines des fonctionnalités de TTK Bootstrap et créer une application de gestion taches.

Étape 1 : Installation de ttkbootstrap

Assurez-vous d’avoir ttkbootstrap installé sur votre système avec la commande :

pip install ttkbootstrap

Étape 2 : Importation des modules et création de la fenêtre principale

Créez un fichier Python (par exemple, app.py) et importez les modules nécessaires :

import tkinter as tk
from ttkbootstrap import Style
from tkinter import ttk

Ensuite, créez la fenêtre principale et configurez-la avec un style ttkbootstrap :

root = tk.Tk()
root.title("Gestionnaire de Tâches avec TTK Bootstrap")
style = Style(theme="lumen")

Étape 3 : Création des widgets

Créez des widgets pour une application de gestion de tâches. Voici les widgets que nous utiliserons :

# Étiquette
label = ttk.Label(root, text="Gestionnaire de Tâches", style="info.TLabel")
label.pack(pady=10)

# Champ de saisie pour ajouter une tâche
task_entry = ttk.Entry(root, width=40)
task_entry.pack(pady=5)

# Bouton pour ajouter une tâche
def add_task():
    task = task_entry.get()
    if task:
        task_list.insert(tk.END, task)
        task_entry.delete(0, tk.END)

add_button = ttk.Button(root, text="Ajouter une Tâche", command=add_task, style="success.TButton")
add_button.pack(pady=5)

# Liste des tâches
task_list = tk.Listbox(root, height=10, selectbackground="success")
task_list.pack(pady=5)

# Bouton pour supprimer une tâche sélectionnée
def remove_task():
    selected_task = task_list.curselection()
    if selected_task:
        task_list.delete(selected_task)

remove_button = ttk.Button(root, text="Supprimer la Tâche", command=remove_task, style="danger.TButton")
remove_button.pack(pady=5)

Étape 4 : Personnalisation des styles

Personnalisez les styles de vos widgets en utilisant les classes CSS de TTK Bootstrap. Par exemple, personnalisons le style des boutons et de l’étiquette :

style.configure("success.TButton", background="#28a745", foreground="#fff", font=("Helvetica", 12))
style.configure("danger.TButton", background="#dc3545", foreground="#fff", font=("Helvetica", 12))
style.configure("info.TLabel", background="#17a2b8", foreground="#fff", font=("Helvetica", 18))

Étape 5 : Exécution de l’application

Lancez l’application en utilisant la boucle principale Tkinter :

root.mainloop()

Étape 6 : Exécution de l’application

Exécutez votre script Python. Vous devriez voir une interface utilisateur pour la gestion des tâches avec une étiquette, un champ de saisie pour ajouter des tâches, une liste des tâches, et des boutons pour ajouter et supprimer des tâches.

Étape 7 : Personnalisation avancée

TTK Bootstrap offre de nombreuses classes CSS pour personnaliser la couleur, la police, les bordures, etc. Vous pouvez explorer davantage la documentation de ttkbootstrap pour personnaliser votre application selon vos besoins : https://ttkbootstrap.readthedocs.io/en/latest/

N’hésitez pas à ajouter plus de fonctionnalités, à stocker les tâches dans une liste, à les sauvegarder dans un fichier, etc., pour créer une application de gestion de tâches plus complète.

Code complet de l’application

import tkinter as tk
from ttkbootstrap import Style
from tkinter import ttk

# Création de la fenêtre principale
root = tk.Tk()
root.title("Gestionnaire de Tâches avec TTK Bootstrap")
style = Style(theme="cyborg")

tasks = []

def on_entry_click(event):
    if task_entry.get() == "Entrez votre tâche ici...":
        task_entry.delete(0, "end") # Efface le texte de placeholder
def on_focusout(event):
    if task_entry.get() == "":
        task_entry.insert(0, "Entrez votre tâche ici...") # Ajoute le texte de placeholder
# Création des widgets
label = ttk.Label(root, text="Gestionnaire de Tâches", style="info.TLabel")
label.pack(pady=5, fill=tk.X, padx=10)

task_entry = ttk.Entry(root, text="Tapez une tache", foreground="white", font=("Helvetica", 10, "bold"))
task_entry.insert(0, "Entrez votre tâche ici...") # Ajoute le texte de placeholder
task_entry.bind("<FocusIn>", on_entry_click) # Gère le clic sur le champ de saisie
task_entry.bind("<FocusOut>", on_focusout) # Gère la sortie de focus
task_entry.pack(pady=5, fill=tk.X, padx=5)

def add_task():
    task = task_entry.get()
    if task:
        tasks.append(task)
        task_list.delete(0, tk.END)
        for t in tasks:
            task_list.insert(tk.END, "tache "+str(tasks.index(t))+" : "+t)
        task_entry.delete(0, tk.END)

add_button = ttk.Button(root, text="Ajouter une Tâche", command=add_task, style="success.TButton")
add_button.pack(pady=5)

task_list = tk.Listbox(root, width=40, height=10, foreground="white", font=("Helvetica", 10, "bold"))
task_list.pack(pady=5, fill=tk.X, padx=5)

def remove_task():
    selected_task = task_list.curselection()
    if selected_task:
        tasks.pop(selected_task[0])
        print (selected_task)
        task_list.delete(selected_task)

remove_button = ttk.Button(root, text="Supprimer la Tâche", command=remove_task, style="danger.TButton")
remove_button.pack(pady=5)

# Personnalisation des styles
style.configure("success.TButton", background="#28a745", foreground="#fff", font=("Helvetica", 12))
style.configure("danger.TButton", background="#dc3545", foreground="#fff", font=("Helvetica", 12))
style.configure("info.TLabel", background="#17a2b8", foreground="#fff", font=("Helvetica", 18))

# Exécution de l'application
root.mainloop()

291 commentaires