Une application To-Do, parfois appelée gestionnaire de tâches, permet aux utilisateurs d’organiser et de gérer leurs tâches plus efficacement. Vous pouvez créer une liste de tâches quotidiennes ou hebdomadaires, fixer des échéances et des rappels, les classer par ordre de priorité, suivre leur progression et les partager avec d’autres.
Une application To-Do vous permet de gérer votre temps, d’augmenter votre productivité et de réduire votre stress. Alors, comment en créer une en Python ?
Le module Tkinter
Vous pouvez utiliser Tkinter pour créer l’application To-Do. Tkinter vous permet de créer des applications de bureau. Il offre une variété de widgets tels que des boutons, des étiquettes et des zones de texte qui facilitent le développement d’applications. Parmi les applications que vous pouvez développer à l’aide de Tkinter, citons un dictionnaire, un lecteur de musique, un outil de conversion de poids et un jeu de mots.
Pour installer Tkinter, ouvrez un terminal et exécutez :
pip install tkinter
Comment créer une application To-Do en utilisant Python
Vous pouvez trouver le code source de l’application To-Do dans ce dépôt GitHub.
Importez le module Tkinter et initialisez la fenêtre racine. En utilisant le module configure() permet de définir la couleur d’arrière-plan. Elle définit également le titre et la taille de la fenêtre.
from tkinter import *
from tkinter.font import Font
root = Tk()
root.configure(background="#A020f0")
root.title('To-Do List Application')
root.geometry("750x500")
Définir un style de police et un widget de cadre. Un cadre agit comme un conteneur et est responsable de l’organisation de la position des autres widgets. Définissez la fenêtre parentale dans laquelle vous souhaitez le placer et donnez-lui un padding vertical de 10.
Définir un widget listbox. Ce composant affiche une liste d’éléments que l’utilisateur peut sélectionner. Définissez la fenêtre parente dans laquelle vous souhaitez le placer, le style de police, la largeur, la hauteur, la couleur d’arrière-plan, la largeur de la bordure et la couleur de la police. Définissez également l’épaisseur de la mise en évidence, la couleur d’arrière-plan qu’elle doit avoir lorsqu’elle est sélectionnée et l’apparence de la ligne active en tant que Aucun.
Organisez la liste en la plaçant sur le côté gauche et en lui demandant de remplir tout espace supplémentaire dans les deux sens.
my_font = Font(family="Arial", size=22, weight="bold")
my_frame = Frame(root)
my_frame.pack(pady=10)
my_list = Listbox(my_frame, font=my_font, width=40, height=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightthickness=0, selectbackground="#ff0000", activestyle="none")
my_list.pack(side=LEFT, fill=BOTH)
Définir une barre de défilement que le programme affichera sur le côté droit du cadre, en remplissant l’espace supplémentaire dans les deux directions. Utiliser la fonction config() pour lier la barre de défilement au widget listbox que vous avez défini précédemment. Lors de la définition de la valeur de l’élément yscrollcommand comme my_scrollbar.set il obtient la position actuelle de la barre de défilement lors de l’interaction avec l’utilisateur.
Lorsque le paramètre de commande est défini comme ma_liste.yviewle mouvement de la barre de défilement est lié aux fonctions haut et bas. Ainsi, lorsque l’utilisateur interagit avec la barre de défilement, les vues de la boîte à liste changent en conséquence.
my_scrollbar = Scrollbar(my_frame)
my_scrollbar.pack(side=RIGHT, fill=BOTH)
my_list.config(yscrollcommand=my_scrollbar.set)
my_scrollbar.config(command=my_list.yview)
Définir un widget d’entrée pour accepter des tâches comme entrée de l’utilisateur. Définissez la fenêtre parentale dans laquelle vous souhaitez le placer, le style de police, la largeur et la couleur d’arrière-plan. Organisez-le en ajoutant une marge de 20 dans le sens vertical.
Définissez un cadre pour organiser vos boutons. Placez-les dans la fenêtre racine et donnez-lui une couleur de fond. Organisez le cadre avec un padding de 20 dans le sens vertical également.
my_entry = Entry(root, font=("Arial", 22), width=26, bg='#cf9fff')
my_entry.pack(pady=20)
button_frame = Frame(root, bg='#a020f0')
button_frame.pack(pady=20)
Définir une fonction, delete_item(). Passez le ANCRE paramètre de la fonction d’effacement pour supprimer l’élément sélectionné de la liste.
def delete_item():
my_list.delete(ANCHOR)
Définir une fonction, add_item(). Utiliser la fonction get() pour récupérer la valeur saisie par l’utilisateur à la fin de la liste. Si la liste est vide, l’élément ajouté deviendra la première entrée de la liste. Après avoir ajouté l’élément à la liste, vous devez le supprimer du widget d’entrée. Utilisez la fonction delete pour supprimer le texte inséré du début à la fin de sa longueur.
def add_item():
my_list.insert(END, my_entry.get())
my_entry.delete(0, END)
Définir une fonction, cross_off_item(). Utiliser la fonction item_config() Cette méthode permet de changer la couleur de la police de l’élément sélectionné dans la liste en une couleur pâle, vous avez rayé l’élément. Effacez la sélection que vous avez faite maintenant du début à la fin de sa longueur.
def cross_off_item():
my_list.itemconfig(my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, END)
Définir une fonction, uncross_item(). Semblable à la fonction ci-dessus, la couleur de la tâche sélectionnée est ramenée à la couleur d’origine et la sélection est complètement effacée.
def uncross_item():
my_list.itemconfig(my_list.curselection(), fg="#5c4033")
my_list.selection_clear(0, END)
Définir une fonction, delete_crossed(). Définissez une variable compteur et itérez jusqu’à ce qu’elle soit inférieure à la taille de la liste. Si la couleur de police de l’élément est faible, supprimez cet élément de la liste. Sinon, poursuivre l’itération en incrémentant la variable compteur.
def delete_crossed():
count = 0
while count < my_list.size():
if my_list.itemcget(count, "fg") == "#dedede":
my_list.delete(my_list.index(count))
else:
count += 1
Définissez cinq boutons : supprimer, ajouter, barrer, dé-barrer et supprimer barré. Placez les boutons dans le cadre que vous avez créé précédemment. Définissez le texte que chaque bouton doit afficher, la fonction qu’il doit exécuter lorsque vous cliquez dessus, sa couleur d’arrière-plan et son style de police.
delete_button = Button(button_frame, text="Delete Item", command=delete_item, bg="#e7305b", font=("arial", 12, "bold"))
add_button = Button(button_frame, text="Add Item", command=add_item, bg="#e7305b", font=("arial", 12, "bold"))
cross_off_button = Button(button_frame, text="Cross Off Item", command=cross_off_item, bg="#e7305b", font=("arial", 12, "bold"))
uncross_button = Button(button_frame, text="Uncross Item", command=uncross_item, bg="#e7305b", font=("arial", 12, "bold"))
delete_crossed_button = Button(button_frame, text="Delete Crossed", command=delete_crossed, bg="#e7305b", font=("arial",12, "bold"))
Organisez les boutons à l’aide du gestionnaire de grille sur une seule ligne et cinq colonnes. Définissez un espacement de 0 dans la direction horizontale pour permettre un certain espacement entre les boutons,
delete_button.grid(row=0, column=0)
add_button.grid(row=0, column=1, padx=20)
cross_off_button.grid(row=0, column=2)
uncross_button.grid(row=0, column=3, padx=20)
delete_crossed_button.grid(row=0, column=4)
Le mainloop() indique à Python de lancer la boucle d’événements Tkinter et d’écouter les événements jusqu’à ce que vous fermiez la fenêtre.
root.mainloop()
Rassemblez tout le code et ne manquez aucune tâche grâce à cette application efficace de liste de choses à faire.
Sortie de l’application To-Do en utilisant Python
Lorsque vous exécutez le programme ci-dessus, une fenêtre apparaît dans laquelle vous pouvez saisir les tâches que vous souhaitez accomplir. En ajoutant la tâche et en appuyant sur la touche Ajouter un élément la tâche est ajoutée à l’écran.
Lorsque l’on sélectionne l’une des tâches avec la souris/le clavier et que l’on clique sur le bouton Barrer l’élément la tâche sélectionnée change de couleur et s’éteint.
En sélectionnant l’élément barré et en cliquant sur le bouton Annuler l’article le programme surligne la tâche et lui redonne sa couleur d’origine.
En cliquant sur le bouton Supprimer les croix le programme supprime la tâche barrée. En sélectionnant un élément et en cliquant sur le bouton Supprimer l’élément l’élément sélectionné est supprimé.
Les applications que vous pouvez créer en utilisant Python pour augmenter votre productivité
Vous pouvez créer des applications telles que RescueTime, qui permet de savoir combien de temps un utilisateur passe sur telle ou telle application. De telles applications peuvent vous aider à découvrir les sites web qui vous distraient le plus. Par ailleurs, vous pouvez vous inspirer de Trello pour créer des tableaux contenant des listes de tâches, des échéances et des rappels.
Une application musicale qui diffuse une liste de lecture spécialement conçue peut aider les utilisateurs à se concentrer sur leur travail. Vous pouvez même automatiser les programmes de l’interface graphique pour effectuer des tâches répétitives comme les processus de connexion et les scripts pour interagir avec le bureau.