En To-Do-app er et klassisk prosjekt for enhver spirende programmerer. Finn ut hvordan du bygger en med Python og Tkinter.

En To-Do-applikasjon, noen ganger referert til som en oppgavebehandling, lar brukere organisere og administrere oppgavene sine mer effektivt. Du kan lage en liste over daglige eller ukentlige oppgaver, angi tidsfrister og påminnelser, prioritere dem, spore fremgangen deres og dele dem med andre.

En To-Do-app lar deg administrere tid, øke produktiviteten og redusere stress. Så, hvordan kan du bygge en i Python?

Tkinter-modulen

Du kan bruke Tkinter til å bygge To-Do-applikasjonen. Tkinter lar deg lage skrivebordsapplikasjoner. Den tilbyr en rekke widgets som knapper, etiketter og tekstbokser som gjør det enkelt å utvikle apper. Noen applikasjoner du kan utvikle med Tkinter inkluderer en Ordbok app, Musikkspiller, a Vektkonverteringsverktøy, og en Word Jumble-spill.

For å installere Tkinter, åpne en terminal og kjør:

pip installer tkinter

Hvordan bygge en gjøremålsapplikasjon ved hjelp av Python

instagram viewer

Du finner kildekoden til To-Do-applikasjonen i denne GitHub-depot.

Importer Tkinter-modulen og initialiser rotvinduet. Bruker konfigurer() funksjon, angi bakgrunnsfargen. Angi også tittelen og størrelsen på vinduet.

fra tkinter import *
fra tkinter.font import Font

root = Tk()
root.configure (bakgrunn="#A020f0")
root.title("Gjøremålslisteapplikasjon")
root.geometry("750x500")

Definer en skriftstil og en rammewidget. En ramme fungerer som en beholder og er ansvarlig for å arrangere posisjonen til andre widgets. Still inn overordnet vinduet du vil plassere det i og gi det en vertikal polstring på 10.

Definer en listebokswidget. Denne komponenten viser en liste over elementer som brukeren kan velge. Angi det overordnede vinduet du vil plassere det i, skriftstilen, bredden, høyden, bakgrunnsfargen, kantbredden og skriftfargen. Still også inn fokushøydepunktets tykkelse, bakgrunnsfargen den skal ha når den er valgt, og utseendet til den aktive linjen som Ingen.

Organiser listen ved å plassere den på venstre side og be den fylle eventuell ekstra plass i begge retninger.

my_font = Font (familie="Arial", størrelse=22, vekt="dristig")
my_frame = Ramme (root)
my_frame.pack (pady=10)

min_liste = Listeboks (min_ramme, font=my_font, width=40, høyde=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightthickness=0, velg bakgrunn="#ff0000", activestyle="ingen")
my_list.pack (side=LEFT, fill=BOTH)

Definer et rullefelt som programmet skal vise på høyre side av rammen, og fyller ut eventuell ekstra plass i begge retninger. Bruke config() metode for å binde rullefeltet til listebokswidgeten du definerte tidligere. Ved innstilling av verdien av yscroll-kommando som my_scrollbar.set den får gjeldende posisjon til rullefeltet ved brukerinteraksjon.

Ved innstilling av kommandoparameteren som my_list.yview, blir rullefeltets bevegelse knyttet til opp- og ned-funksjonene. Så når brukeren samhandler med rullefeltet, endres listeboksvisningene tilsvarende.

my_scrollbar = Rullefelt (min_ramme)
my_scrollbar.pack (side=HØYRE, fyll=BEDE)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)

Definer en oppføringswidget for å godta oppgaver som input fra brukeren. Angi det overordnede vinduet du vil plassere det i, skriftstilen, bredden og bakgrunnsfargen. Organiser den ved å legge til en polstring på 20 i vertikal retning.

Definer en ramme for å organisere knappene dine. Plasser dem i rotvinduet og gi det en bakgrunnsfarge. Organiser rammen med en polstring på 20 i vertikal retning også.

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

button_frame = Ramme (root, bg='#a020f0')
button_frame.pack (pady=20)

Definer en funksjon, delete_item(). Send meg ANKER parameter til slettefunksjonen for å fjerne det valgte elementet fra listen.

defdelete_item():
my_list.delete (ANKER)

Definer en funksjon, add_item(). Bruke få() funksjon for å hente verdien inn fra brukeren til slutten av listen. Hvis listen er tom, vil elementet som legges til bli den første oppføringen i listen. Etter å ha lagt til elementet i listen, må du fjerne det fra oppføringswidgeten. Bruk slettefunksjonen for å fjerne teksten som er satt inn fra begynnelsen til slutten av lengden.

defadd_item():
my_list.insert (END, my_entry.get())
my_entry.delete(0, SLUTT)

Definer en funksjon, cross_off_item(). Bruke item_config() metode for å endre skriftfargen til den valgte elementoppgaven i listen til en svak farge, har du krysset av elementet. Fjern valget du har gjort nå fra begynnelsen til slutten av lengden.

defcross_off_item():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, SLUTT)

Definer en funksjon, uncross_item(). I likhet med funksjonen ovenfor, endre fargen på den valgte oppgaven tilbake til originalen og fjern valget helt.

defuncross_item():
my_list.itemconfig (my_list.curselection(), fg="#5c4033")
my_list.selection_clear(0, SLUTT)

Definer en funksjon, delete_crossed(). Definer en tellervariabel og iterer til den er mindre enn størrelsen på listen. Hvis elementets skriftfarge er svak, slett elementet fra listen. Ellers fortsetter du iterasjonen ved å øke tellervariabelen.

defdelete_crossed():
telle = 0

samtidig som telle < my_list.size():
hvis my_list.itemcget (count, "fg") == "#dedede":
my_list.delete (my_list.index (count))
ellers:
telle += 1

Definer fem knapper: slett, legg til, kryss av, fjern kryss av og slett kryss av. Plasser knappene i knapperammen du opprettet tidligere. Angi teksten hver knapp skal vise, funksjonen den skal kjøre når du klikker på den, bakgrunnsfargen og skriftstilen.

delete_button = Knapp (knappramme, tekst="Slett element", kommando=slett_element, bg="#e7305b", font=("arial", 12, "dristig"))
add_button = Knapp (knappramme, tekst="Legg til element", kommando=legg til_element, bg="#e7305b", font=("arial", 12, "dristig"))
cross_off_button = Knapp (knappramme, tekst="Kryss av vare", command=cross_off_item, bg="#e7305b", font=("arial", 12, "dristig"))
uncross_button = Knapp (knappramme, tekst="Uncross element", command=uncross_item, bg="#e7305b", font=("arial", 12, "dristig"))
delete_crossed_button = Knapp (knappramme, tekst="Slett krysset", kommando=slett_krysset, bg="#e7305b", font=("arial",12, "dristig"))

Organiser knappene ved hjelp av rutenettbehandlingen i en enkelt rad og fem kolonner. Sett en polstring på 0 i horisontal retning for å gi litt avstand mellom knappene,

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

De mainloop() funksjonen forteller Python å kjøre Tkinter-hendelsesløkken og lytte etter hendelser til du lukker vinduet.

root.mainloop()

Sett sammen all koden og gå aldri glipp av noen oppgave ved å bruke denne effektive oppgavelisten.

Utdata fra gjøremålsapplikasjon ved bruk av Python

Når du kjører programmet ovenfor, vises et vindu der du kan legge inn oppgavene du vil fullføre. Når du legger til oppgaven og trykker på Legg til element knappen, legges oppgaven til på skjermen.

Ved å velge en av oppgavene med musen/tastaturet og klikke på Kryss av vare knappen, endrer den valgte oppgaven farge og blir svak.

Ved å velge det kryssede elementet og klikke på Uncross element knappen, fremhever programmet oppgaven tilbake til sin opprinnelige farge.

Ved å klikke på Slett krysset knappen, sletter programmet den avkryssede oppgaven. Når du velger et element og klikker på Slett element knappen, fjernes det valgte elementet.

Applikasjoner du kan bygge ved å bruke Python for å øke produktiviteten

Du kan bygge applikasjoner som RescueTime som sporer hvor mye tid en bruker bruker på hvilken app. Slike apper kan hjelpe deg med å finne ut hvilke nettsteder som forårsaker mest distraksjon. Bortsett fra dette kan du hente inspirasjon fra Trello til å lage tavler med gjøremålslister, tidsfrister og påminnelser.

En musikkapplikasjon som spiller av en spesialdesignet spilleliste kan hjelpe brukere med å konsentrere seg og fokusere på arbeidet. Du kan til og med automatisere GUI-programmer for å utføre repeterende oppgaver som påloggingsprosesser og skript for å samhandle med skrivebordet.