Búsqueda de sitios web

Cree una aplicación de tareas pendientes con Python


Una aplicación To-Do es un proyecto clásico para cualquier programador en ciernes. Descubra cómo crear uno usando Python y Tkinter.

Una aplicación de tareas pendientes, a veces denominada administrador de tareas, permite a los usuarios organizar y gestionar sus tareas de forma más eficaz. Puede crear una lista de tareas diarias o semanales, establecer fechas límite y recordatorios, priorizarlas, realizar un seguimiento de su progreso y compartirlas con otros.

Una aplicación To-Do le permite administrar el tiempo, aumentar la productividad y reducir el estrés. Entonces, ¿cómo se puede crear uno en Python?

El módulo Tkinter

Puede utilizar Tkinter para crear la aplicación To-Do. Tkinter te permite crear aplicaciones de escritorio. Ofrece una variedad de widgets como botones, etiquetas y cuadros de texto que facilitan el desarrollo de aplicaciones. Algunas aplicaciones que puedes desarrollar usando Tkinter incluyen una aplicación de diccionario, un reproductor de música, una herramienta de conversión de peso y un juego Word Jumble.

Para instalar Tkinter, abra una terminal y ejecute:

pip install tkinter

Cómo crear una aplicación de tareas pendientes utilizando Python

Puede encontrar el código fuente de la aplicación To-Do en este repositorio de GitHub.

Importe el módulo Tkinter e inicialice la ventana raíz. Usando la función configure(), establezca el color de fondo. También establezca el título y el tamaño de la ventana.

from tkinter import *
from tkinter.font import Font
root = Tk()
root.configure(background="#A020f0")
root.title('To-Do List Application')
root.geometry("750x500")

Defina un estilo de fuente y un widget de marco. Un marco actúa como contenedor y es responsable de organizar la posición de otros widgets. Configure la ventana principal en la que desea colocarlo y asígnele un relleno vertical de 10.

Defina un widget de cuadro de lista. Este componente muestra una lista de elementos para que el usuario los seleccione. Configure la ventana principal en la que desea colocarlo, el estilo de fuente, el ancho, el alto, el color de fondo, el ancho del borde y el color de fuente. Además, establezca el grosor del resaltado del foco, el color de fondo que debe tener cuando se selecciona y la apariencia de la línea activa como Ninguno.

Organice la lista colocándola en el lado izquierdo y diciéndole que llene cualquier espacio adicional en ambas direcciones.

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)

Defina una barra de desplazamiento que el programa mostrará en el lado derecho del marco, llenando cualquier espacio adicional en ambas direcciones. Utilice el método config() para vincular la barra de desplazamiento al widget del cuadro de lista que definió anteriormente. Al establecer el valor de yscrollcommand como my_scrollbar.set, obtiene la posición actual de la barra de desplazamiento en la interacción del usuario.

Al configurar el parámetro del comando como my_list.yview, el movimiento de la barra de desplazamiento se vincula a las funciones de arriba y abajo. Entonces, cuando el usuario interactúa con la barra de desplazamiento, las vistas del cuadro de lista cambian en consecuencia.

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)

Defina un widget de entrada para aceptar tareas como entrada del usuario. Configure la ventana principal en la que desea colocarlo, el estilo de fuente, el ancho y el color de fondo. Organízalo agregando un relleno de 20 en la dirección vertical.

Defina un marco para organizar sus botones. Colócalos en la ventana raíz y dale un color de fondo. Organice el marco con un relleno de 20 también en dirección vertical.

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)

Defina una función, delete_item(). Pase el parámetro ANCHOR a la función de eliminación para eliminar el elemento seleccionado de la lista.

def delete_item():
    my_list.delete(ANCHOR)

Defina una función, add_item(). Utilice la función get() para recuperar el valor ingresado por el usuario hasta el final de la lista. Si la lista está vacía, el elemento agregado se convertirá en la primera entrada de la lista. Después de agregar el elemento a la lista, debe eliminarlo del widget de entrada. Utilice la función de eliminar para eliminar el texto insertado desde el principio hasta el final de su longitud.

def add_item():
    my_list.insert(END, my_entry.get())
    my_entry.delete(0, END)

Defina una función, cross_off_item(). Utilice el método item_config() para cambiar el color de fuente de la tarea del elemento seleccionado en la lista a un color tenue, ha tachado el elemento. Borre la selección que realizó ahora desde el principio hasta el final de su longitud.

def cross_off_item():
    my_list.itemconfig(my_list.curselection(), fg="#dedede")
    my_list.selection_clear(0, END)

Defina una función, uncross_item(). De manera similar a la función anterior, cambie el color de la tarea seleccionada al original y borre la selección por completo.

def uncross_item():
    my_list.itemconfig(my_list.curselection(), fg="#5c4033")
    my_list.selection_clear(0, END)

Defina una función, delete_crossed(). Defina una variable de contador e itere hasta que sea menor que el tamaño de la lista. Si el color de fuente del elemento es tenue, elimine ese elemento de la lista. De lo contrario, continúe la iteración incrementando la variable del contador.

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

Defina cinco botones: eliminar, agregar, tachar, destachar y eliminar tachados. Coloque los botones en el marco de botones que creó anteriormente. Establezca el texto que debe mostrar cada botón, la función que debe ejecutar al hacer clic en él, su color de fondo y estilo de fuente.

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"))

Organiza los botones usando el administrador de cuadrícula en una sola fila y cinco columnas. Establezca un relleno de 0 en la dirección horizontal para dejar algo de espacio entre los botones,

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)

La función mainloop() le dice a Python que ejecute el bucle de eventos de Tkinter y escuche los eventos hasta que cierre la ventana.

root.mainloop()

Junte todo el código y nunca se pierda ninguna tarea utilizando esta eficiente aplicación de lista de tareas pendientes.

Salida de la aplicación de tareas pendientes usando Python

Al ejecutar el programa anterior, aparece una ventana en la que puede ingresar las tareas que desea completar. Al agregar la tarea y presionar el botón Agregar elemento, la tarea se agrega a la pantalla.

Al seleccionar cualquiera de las tareas con el mouse o el teclado y hacer clic en el botón Tachar elemento, la tarea seleccionada cambia de color y se vuelve tenue.

Al seleccionar el elemento tachado y hacer clic en el botón Descruzar elemento, el programa resalta la tarea de nuevo a su color original.

Al hacer clic en el botón Eliminar tachado, el programa elimina la tarea tachada. Al seleccionar cualquier elemento y hacer clic en el botón Eliminar elemento, el elemento seleccionado se elimina.

Aplicaciones que puede crear con Python para aumentar su productividad

Puede crear aplicaciones como RescueTime, que rastrea cuánto tiempo pasa un usuario en cada aplicación. Estas aplicaciones pueden ayudarte a descubrir qué sitios web te distraen más. Aparte de esto, puedes inspirarte en Trello para crear tableros con listas de tareas pendientes, fechas límite y recordatorios.

Una aplicación de música que reproduce una lista de reproducción especialmente diseñada puede ayudar a los usuarios a concentrarse y concentrarse en el trabajo. Incluso puede automatizar programas GUI para realizar tareas repetitivas como procesos de inicio de sesión y scripts para interactuar con el escritorio.

Artículos relacionados: