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

Una aplicación To-Do, a veces denominada administrador de tareas, permite a los usuarios organizar y administrar sus tareas de manera más efectiva. 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 puedes construir uno en Python?

El Módulo Tkinter

Puede usar Tkinter para construir 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 puede desarrollar usando Tkinter incluyen un aplicación de diccionario, Reproductor de música, a Herramienta de conversión de peso, y un Juego de revoltijo de palabras.

instagram viewer

Para instalar Tkinter, abre una terminal y ejecuta:

pip instalar tkinter

Cómo construir una aplicación de tareas pendientes usando Python

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

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

de tkinter importar *
de tkinter.fuente importar Fuente

raíz = Tk()
root.configure (fondo="#A020f0")
raíz.título('Aplicación de lista de tareas pendientes')
raíz.geometría("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. Establezca la ventana principal en la que desea colocarla y dele un relleno vertical de 10.

Defina un widget de cuadro de lista. Este componente muestra una lista de elementos para que el usuario seleccione. Establezca la ventana principal en la que desea colocarlo, el estilo de fuente, el ancho, la altura, el color de fondo, el ancho del borde y el color de fuente. Además, configure el grosor del resaltado de enfoque, 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 = Fuente (familia="arial", tamaño=22, peso="atrevido")
my_frame = Marco (raíz)
mi_marco.paquete (pady=10)

mi_lista = Cuadro de lista (mi_marco, fuente=mi_fuente, ancho=40, altura=7, bg="#cf9fff", bd=0, fg="#5c4033", grosor de resaltado =0, seleccionarfondo="#ff0000", estilo activo="ninguno")
my_list.pack (lado=IZQUIERDO, relleno=AMBOS)

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

Al establecer el parámetro de comando como mi_lista.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 = Barra de desplazamiento (my_frame)
my_scrollbar.pack (lado=DERECHO, relleno=AMBOS)
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. Establezca la ventana principal en la que desea colocarlo, el estilo de fuente, el ancho y el color de fondo. Organícelo 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 la dirección vertical.

mi_entrada = Entrada (raíz, fuente=("arial", 22), ancho =26, bg='#cf9fff')
mi_entrada.paquete (pady=20)

button_frame = Marco (raíz, bg='#a020f0')
button_frame.paquete (pady=20)

Definir una función, Eliminar elemento(). Pasa el ANCLA parámetro a la función de eliminación para eliminar el elemento seleccionado de la lista.

definitivamenteEliminar elemento():
my_list.delete (ANCHOR)

Definir una función, añadir artículo(). Utilizar el conseguir() Función para recuperar el valor ingresado por el usuario hasta el final de la lista. Si la lista está vacía, el elemento añadido 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.

definitivamenteañadir artículo():
mi_lista.insertar (FIN, mi_entrada.get())
mi_entrada.borrar(0, FIN)

Definir una función, elemento_cruzado(). Utilizar el item_config() método 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 hizo ahora desde el principio hasta el final de su duración.

definitivamenteelemento_cruzado():
mi_lista.itemconfig (mi_lista.curselection(), fg="#dedede")
mi_lista.seleccion_borrar(0, FIN)

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

definitivamentedescruzar_elemento():
mi_lista.itemconfig (mi_lista.curselection(), fg="#5c4033")
mi_lista.seleccion_borrar(0, FIN)

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

definitivamenteeliminar_cruzado():
contar = 0

mientras contar < mi_lista.tamaño():
si my_list.itemcget (recuento, "fg") == "#dedede":
mi_lista.borrar (mi_lista.index (recuento))
demás:
contar += 1

Defina cinco botones: borrar, añadir, tachar, desmarcar y borrar tachado. 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, el color de fondo y el estilo de fuente.

delete_button = Botón (button_frame, text="Eliminar elemento", comando=eliminar_elemento, bg="#e7305b", fuente=("arial", 12, "atrevido"))
add_button = Botón (button_frame, text="Añadir artículo", comando=agregar_elemento, bg="#e7305b", fuente=("arial", 12, "atrevido"))
cross_off_button = Botón (button_frame, text="Ítem tachado", command=cross_off_item, bg="#e7305b", fuente=("arial", 12, "atrevido"))
uncross_button = Botón (button_frame, text="Descruzar artículo", comando=uncross_item, bg="#e7305b", fuente=("arial", 12, "atrevido"))
delete_crossed_button = Botón (button_frame, text="Eliminar cruzado", comando=eliminar_cruzado, bg="#e7305b", fuente=("arial",12, "atrevido"))

Organiza los botones usando el grid manager en una sola fila y cinco columnas. Establezca un relleno de 0 en la dirección horizontal para asignar algo de espacio entre los botones,

delete_button.grid (fila=0, columna=0)
add_button.grid (fila=0, columna=1, padx=20)
cross_off_button.grid (fila=0, columna=2)
uncross_button.grid (fila=0, columna=3, padx=20)
delete_crossed_button.grid (fila=0, columna=4)

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

raíz.mainloop()

Reúna todo el código y nunca se pierda ninguna tarea usando esta eficiente aplicación To-Do List.

Salida de la aplicación To-Do usando Python

Al ejecutar el programa anterior, aparece una ventana en la que puede ingresar las tareas que desea completar. Al añadir la tarea y pulsar el botón Añadir artículo botón, la tarea se agrega a la pantalla.

Al seleccionar cualquiera de las tareas con el mouse/teclado y hacer clic en el Artículo tachado botón, la tarea seleccionada cambia de color y se vuelve tenue.

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

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

Aplicaciones que puede crear con Python para aumentar su productividad

Puede crear aplicaciones como RescueTime, que realiza un seguimiento de cuánto tiempo pasa un usuario en qué aplicación. Estas aplicaciones pueden ayudarlo a descubrir qué sitios web le causan más distracciones. Aparte de esto, puede inspirarse en Trello para crear tableros con listas de tareas, fechas límite y recordatorios.

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