UNIVERSITE LIBRE DES PAYS DES GRANDS
LACS
FACULTE DE SCIENCES ET TECHNOLOGIES APPLIQUEES
DEPARTEMENT DE GENIE ELECTRIQUE ET INFORMATIQUE
BP. 368 GOMA
EXAMEN D’INFORMATIQUE FSTA/L1
Sujet : concevoir une application graphique de
gestion de votre choix
ETUDIANT :
Date : Mercredi,18 /09/2024
PROFESSEUR :
ANNÉE ACADÉMIQUE 2023- 2024
import tkinter as tk
from tkinter import messagebox
class TodoApp:
def __init__(self, master):
self.master = master
self.master.title("Gestionnaire de Tâches")
self.master.geometry("400x300")
# Liste pour stocker les tâches
self.tasks = []
# Charger les tâches existantes
self.load_tasks()
# Créer les widgets
self.create_widgets()
def create_widgets(self):
# Étiquette et champ de saisie pour les nouvelles tâches
self.task_label = tk.Label(self.master, text="Nouvelle tâche:")
self.task_label.pack(pady=10)
self.task_entry = tk.Entry(self.master, width=30)
self.task_entry.pack()
# Bouton pour ajouter une tâche
self.add_button = tk.Button(self.master, text="Ajouter",
command=self.add_task)
self.add_button.pack(pady=5)
# Liste des tâches
self.task_listbox = tk.Listbox(self.master, width=50)
self.task_listbox.pack(pady=10)
# Boutons pour gérer les tâches
self.delete_button = tk.Button(self.master, text="Supprimer",
command=self.delete_task)
self.delete_button.pack(side=tk.LEFT, padx=10)
self.complete_button = tk.Button(self.master, text="Marquer comme
terminée", command=self.complete_task)
self.complete_button.pack(side=tk.LEFT)
# Afficher les tâches existantes
self.update_task_list()
def add_task(self):
task = self.task_entry.get()
if task:
self.tasks.append(task)
self.update_task_list()
self.task_entry.delete(0, tk.END)
self.save_tasks()
else:
messagebox.showwarning("Attention", "Veuillez entrer une
tâche.")
def delete_task(self):
try:
task_index = self.task_listbox.curselection()[0]
del self.tasks[task_index]
self.update_task_list()
self.save_tasks()
except IndexError:
messagebox.showwarning("Attention", "Veuillez sélectionner
une tâche à supprimer.")
def complete_task(self):
try:
task_index = self.task_listbox.curselection()[0]
task = self.tasks[task_index]
if not task.startswith("[Terminée] "):
self.tasks[task_index] = "[Terminée] " + task
self.update_task_list()
self.save_tasks()
except IndexError:
messagebox.showwarning("Attention", "Veuillez sélectionner
une tâche à marquer comme terminée.")
def update_task_list(self):
self.task_listbox.delete(0, tk.END)
for task in self.tasks:
self.task_listbox.insert(tk.END, task)
def save_tasks(self):
with open("tasks.txt", "w") as file:
for task in self.tasks:
file.write(task + "\n")
def load_tasks(self):
try:
with open("tasks.txt", "r") as file:
self.tasks = [line.strip() for line in file.readlines()]
except FileNotFoundError:
self.tasks = []
if __name__ == "__main__":
root = tk.Tk()
app = TodoApp(root)
root.mainloop()