Un'app To-Do è un progetto classico per qualsiasi programmatore in erba. Scopri come crearne uno usando Python e Tkinter.

Un'applicazione To-Do, a volte indicata come task manager, consente agli utenti di organizzare e gestire le proprie attività in modo più efficace. Puoi creare un elenco di attività giornaliere o settimanali, impostare scadenze e promemoria, assegnarne la priorità, tenere traccia dei loro progressi e condividerli con altri.

Un'app To-Do ti consente di gestire il tempo, aumentare la produttività e ridurre lo stress. Quindi, come puoi crearne uno in Python?

Il modulo Tkinter

Puoi utilizzare Tkinter per creare l'applicazione To-Do. Tkinter ti consente di creare applicazioni desktop. Offre una varietà di widget come pulsanti, etichette e caselle di testo che semplificano lo sviluppo di app. Alcune applicazioni che puoi sviluppare utilizzando Tkinter includono a Applicazione dizionario, Lettore musicale, UN Strumento di conversione del peso, e un Gioco di parola Jumble.

Per installare Tkinter, apri un terminale ed esegui:

instagram viewer
pip installa tkinter

Come creare un'applicazione To-Do utilizzando Python

Puoi trovare il codice sorgente dell'applicazione To-Do in questo Deposito GitHub.

Importa il modulo Tkinter e inizializza la finestra root. Usando il configura() funzione, impostare il colore di sfondo. Imposta anche il titolo e la dimensione della finestra.

da tkinter importare *
da tkinter.font importare Font

radice = Tk()
root.configure (sfondo="#A020f0")
radice.titolo("Applicazione dell'elenco delle cose da fare")
radice.geometria("750x500")

Definisci uno stile di carattere e un widget cornice. Un frame funge da contenitore ed è responsabile dell'organizzazione della posizione di altri widget. Imposta la finestra principale in cui desideri inserirla e assegnale un'imbottitura verticale di 10.

Definire un widget casella di riepilogo. Questo componente visualizza un elenco di elementi selezionabili dall'utente. Imposta la finestra principale in cui desideri inserirla, lo stile del carattere, la larghezza, l'altezza, il colore di sfondo, la larghezza del bordo e il colore del carattere. Inoltre, imposta lo spessore dell'evidenziazione del focus, il colore di sfondo che dovrebbe avere quando selezionato e l'aspetto della linea attiva come Nessuno.

Organizza l'elenco posizionandolo sul lato sinistro e dicendogli di riempire qualsiasi spazio extra in entrambe le direzioni.

my_font = Carattere (famiglia="Arial", dimensione=22, peso="grassetto")
my_frame = Frame (radice)
my_frame.pack (pady=10)

my_list = Casella di riepilogo (my_frame, font=my_font, width=40, altezza=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightthickness=0, selectbackground="#ff0000", stileattivo="nessuno")
my_list.pack (lato=SINISTRA, riempimento=ENTRAMBE)

Definisci una barra di scorrimento che il programma visualizzerà sul lato destro del frame, riempiendo qualsiasi spazio extra in entrambe le direzioni. Usa il config() metodo per associare la barra di scorrimento al widget della casella di riepilogo definito in precedenza. Impostando il valore di yscrollcommand COME my_scrollbar.set ottiene la posizione corrente della barra di scorrimento sull'interazione dell'utente.

Impostando il parametro di comando come mia_lista.yview, il movimento della barra di scorrimento viene collegato alle funzioni su e giù. Pertanto, quando l'utente interagisce con la barra di scorrimento, le visualizzazioni della casella di riepilogo cambiano di conseguenza.

my_scrollbar = Barra di scorrimento (my_frame)
my_scrollbar.pack (lato=DESTRA, riempimento=ENTRAMBE)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)

Definire un widget di immissione per accettare le attività come input dall'utente. Imposta la finestra principale in cui desideri inserirla, lo stile del carattere, la larghezza e il colore di sfondo. Organizzalo aggiungendo un'imbottitura di 20 nella direzione verticale.

Definisci una cornice per organizzare i tuoi pulsanti. Posizionali nella finestra principale e assegnagli un colore di sfondo. Organizzare il telaio con un'imbottitura di 20 anche in direzione verticale.

my_entry = Voce (root, font=("Arial", 22), larghezza=26, bg='#cf9fff')
my_entry.pack (pady=20)

button_frame = Cornice (radice, bg='#a020f0')
button_frame.pack (pady=20)

Definire una funzione, cancella oggetto(). Passa il ANCORA parametro alla funzione di eliminazione per rimuovere l'elemento selezionato dall'elenco.

defcancella oggetto():
mia_lista.delete (ANCHOR)

Definire una funzione, Aggiungi articolo(). Usa il Ottenere() funzione per recuperare il valore inserito dall'utente alla fine dell'elenco. Se l'elenco è vuoto, l'elemento aggiunto diventerà la prima voce dell'elenco. Dopo aver aggiunto l'elemento all'elenco è necessario rimuoverlo dal widget di inserimento. Utilizzare la funzione di cancellazione per rimuovere il testo inserito dall'inizio alla fine della sua lunghezza.

defAggiungi articolo():
mia_lista.insert (END, mia_voce.get())
mia_voce.delete(0, FINE)

Definire una funzione, cross_off_item(). Usa il item_config() metodo per modificare il colore del carattere dell'attività dell'elemento selezionato nell'elenco in un colore tenue, hai cancellato l'elemento. Cancella la selezione che hai fatto ora dall'inizio alla fine della sua lunghezza.

defcross_off_item():
mia_lista.itemconfig (mia_lista.curselection(), fg="#dedede")
mia_lista.selezione_clear(0, FINE)

Definire una funzione, uncross_item(). Simile alla funzione precedente, cambia il colore dell'attività selezionata riportandolo all'originale e cancella completamente la selezione.

defuncross_item():
mia_lista.itemconfig (mia_lista.curselection(), fg="#5c4033")
mia_lista.selezione_clear(0, FINE)

Definire una funzione, delete_crossed(). Definire una variabile contatore e iterare finché non è inferiore alla dimensione dell'elenco. Se il colore del carattere dell'elemento è sbiadito, elimina l'elemento dall'elenco. Altrimenti, continua l'iterazione incrementando la variabile counter.

defdelete_crossed():
contare = 0

Mentre count < my_list.size():
Se my_list.itemcget (conteggio, "fg") == "#dedede":
my_list.delete (my_list.index (conteggio))
altro:
contare += 1

Definisci cinque pulsanti: cancella, aggiungi, cancella, togli la croce e cancella barrato. Posiziona i pulsanti nella cornice dei pulsanti che hai creato in precedenza. Imposta il testo che ogni pulsante dovrebbe visualizzare, la funzione che dovrebbe eseguire quando fai clic su di esso, il suo colore di sfondo e lo stile del carattere.

delete_button = Pulsante (button_frame, text="Cancella oggetto", comando=delete_item, bg="#e7305b", carattere=("ariale", 12, "grassetto"))
add_button = Pulsante (button_frame, text="Aggiungi articolo", comando=aggiungi_elemento, bg="#e7305b", carattere=("ariale", 12, "grassetto"))
cross_off_button = Pulsante (button_frame, text="Articolo cancellato", comando=cross_off_item, bg="#e7305b", carattere=("ariale", 12, "grassetto"))
uncross_button = Pulsante (button_frame, text="Articolo non incrociato", comando=uncross_item, bg="#e7305b", carattere=("ariale", 12, "grassetto"))
delete_crossed_button = Pulsante (button_frame, text="Elimina Incrociati", comando=delete_crossed, bg="#e7305b", carattere=("ariale",12, "grassetto"))

Organizza i pulsanti utilizzando il gestore della griglia in una singola riga e cinque colonne. Imposta un riempimento di 0 nella direzione orizzontale per assegnare una certa spaziatura tra i pulsanti,

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

IL ciclo principale() La funzione dice a Python di eseguire il ciclo di eventi Tkinter e di ascoltare gli eventi finché non chiudi la finestra.

root.mainloop()

Metti insieme tutto il codice e non perdere mai nessuna attività utilizzando questa efficiente applicazione To-Do List.

Output dell'applicazione To-Do utilizzando Python

Durante l'esecuzione del programma sopra, viene visualizzata una finestra in cui è possibile inserire le attività che si desidera completare. Aggiungendo l'attività e premendo il tasto Aggiungi articolo pulsante, l'attività viene aggiunta allo schermo.

Selezionando una delle attività con il mouse/tastiera e facendo clic su Articolo depennato pulsante, l'attività selezionata cambia colore e diventa sbiadita.

Selezionando l'elemento barrato e facendo clic su Articolo non incrociato pulsante, il programma evidenzia l'attività riportandola al suo colore originale.

Facendo clic sul Elimina Incrociato pulsante, il programma elimina l'attività barrata. Selezionando un elemento e facendo clic su Cancella oggetto pulsante, l'elemento selezionato viene rimosso.

Applicazioni che puoi creare usando Python per aumentare la tua produttività

Puoi creare applicazioni come RescueTime che tiene traccia di quanto tempo un utente trascorre su quale app. Tali app possono aiutarti a scoprire quali siti web ti causano la maggiore distrazione. Oltre a questo, puoi trarre ispirazione da Trello per creare bacheche con elenchi di cose da fare, scadenze e promemoria.

Un'applicazione musicale che riproduce una playlist appositamente progettata può aiutare gli utenti a concentrarsi e concentrarsi sul lavoro. Puoi persino automatizzare i programmi della GUI per eseguire attività ripetitive come processi di accesso e script per interagire con il desktop.