En To-Do-app er et klassisk projekt for enhver spirende programmør. Find ud af, hvordan du bygger en ved hjælp af Python og Tkinter.

En To-Do-applikation, nogle gange omtalt som en opgavehåndtering, lader brugere organisere og administrere deres opgaver mere effektivt. Du kan oprette en liste over daglige eller ugentlige opgaver, indstille deadlines og påmindelser, prioritere dem, spore deres fremskridt og dele dem med andre.

En To-Do-app giver dig mulighed for at styre tid, øge produktiviteten og reducere stress. Så hvordan kan du bygge en i Python?

Tkinter-modulet

Du kan bruge Tkinter til at bygge To-Do-applikationen. Tkinter giver dig mulighed for at oprette desktop-applikationer. Den tilbyder en række widgets som knapper, etiketter og tekstbokse, der gør det nemt at udvikle apps. Nogle applikationer, du kan udvikle ved hjælp af Tkinter, inkluderer en Ordbog app, Musik afspiller, a Vægtkonverteringsværktøj, og en Word Jumble spil.

For at installere Tkinter skal du åbne en terminal og køre:

instagram viewer
pip installer tkinter

Sådan bygger du en opgave-applikation ved hjælp af Python

Du kan finde kildekoden til To-Do-applikationen i denne GitHub-depot.

Importer Tkinter-modulet og initialiser rodvinduet. Bruger konfigurere() funktion, skal du indstille baggrundsfarven. Indstil også titlen og størrelsen på vinduet.

fra tkinter importere *
fra tkinter.font importere Skrifttype

root = Tk()
root.configure (baggrund="#A020f0")
root.title('To-Do List Application')
root.geometry("750x500")

Definer en skrifttypestil og en rammewidget. En ramme fungerer som en beholder og er ansvarlig for at arrangere placeringen af ​​andre widgets. Indstil det overordnede vindue, du vil placere det i, og giv det en lodret polstring på 10.

Definer en listebokswidget. Denne komponent viser en liste over elementer, som brugeren kan vælge. Indstil det overordnede vindue, du vil placere det i, skrifttypestilen, bredden, højden, baggrundsfarven, kantbredden og skrifttypefarven. Indstil også fokusfremhævningens tykkelse, den baggrundsfarve, den skal have, når den er valgt, og udseendet af den aktive linje som Ingen.

Organiser listen ved at placere den i venstre side og bede den fylde ekstra plads i begge retninger.

my_font = Skrifttype (familie="Arial", størrelse=22, vægt="fremhævet")
my_frame = Ramme (rod)
my_frame.pack (pady=10)

my_list = Listbox (min_ramme, font=min_skrifttype, bredde=40, højde=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightthickness=0, vælg baggrund="#ff0000", activestyle="ingen")
my_list.pack (side=LEFT, fill=BOTH)

Definer en rullebjælke, som programmet vil vise i højre side af rammen, og udfylde eventuelt ekstra plads i begge retninger. Brug config() metode til at binde rullepanelet til den listeboks-widget, du definerede tidligere. Ved indstilling af værdien af yscroll-kommando som my_scrollbar.set den får den aktuelle position af rullepanelet ved brugerinteraktion.

Ved indstilling af kommandoparameteren som min_liste.yview, bliver rullebjælkens bevægelse knyttet til op- og ned-funktionerne. Så når brugeren interagerer med rullepanelet, ændres listeboksens visninger tilsvarende.

my_scrollbar = Scrollbar (min_ramme)
my_scrollbar.pack (side=HØJRE, fyld=BEDE)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)

Definer en indtastningswidget til at acceptere opgaver som input fra brugeren. Indstil det overordnede vindue, du vil placere det i, skrifttypestilen, bredden og baggrundsfarven. Organiser det ved at tilføje en polstring på 20 i lodret retning.

Definer en ramme til at organisere dine knapper. Placer dem i rodvinduet og giv det en baggrundsfarve. Organiser rammen med en polstring på 20 i lodret retning.

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

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

Definer en funktion, delete_item(). Bestå ANKER parameter til slettefunktionen for at fjerne det valgte element fra listen.

defslet_vare():
my_list.delete (ANKER)

Definer en funktion, add_item(). Brug få() funktion til at hente værdien, som brugeren har indtastet, til slutningen af ​​listen. Hvis listen er tom, vil det tilføjede element blive den første post på listen. Når du har tilføjet elementet til listen, skal du fjerne det fra indgangswidgetten. Brug slettefunktionen til at fjerne teksten, der er indsat fra begyndelsen til slutningen af ​​dens længde.

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

Definer en funktion, cross_off_item(). Brug item_config() metode til at ændre skriftfarven på den valgte elementopgave på listen til en svag farve, har du krydset elementet af. Ryd det valg, du har foretaget nu, fra begyndelsen til slutningen af ​​dens længde.

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

Definer en funktion, uncross_item(). I lighed med ovenstående funktion skal du ændre farven på den valgte opgave tilbage til originalen og fjerne markeringen helt.

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

Definer en funktion, delete_crossed(). Definer en tællervariabel og gentag, indtil den er mindre end listens størrelse. Hvis elementets skriftfarve er svag, skal du slette elementet fra listen. Ellers skal du fortsætte iterationen ved at øge tællervariablen.

defdelete_crossed():
tælle = 0

mens tælle < min_liste.størrelse():
hvis my_list.itemcget (antal, "fg") == "#dedede":
my_list.delete (my_list.index (count))
andet:
tælle += 1

Definer fem knapper: slet, tilføj, kryds af, fjern kryds fra og slet overstreget. Placer knapperne i den knapramme, du oprettede tidligere. Indstil den tekst, hver knap skal vise, den funktion, den skal køre, når du klikker på den, dens baggrundsfarve og skrifttype.

delete_button = Knap (knapramme, tekst="Slet element", kommando=slet_element, bg="#e7305b", skrifttype=("arial", 12, "fremhævet"))
add_button = Knap (knapramme, tekst="Tilføj element", kommando=add_item, bg="#e7305b", skrifttype=("arial", 12, "fremhævet"))
cross_off_button = Knap (knapramme, tekst="Krys af vare", command=cross_off_item, bg="#e7305b", skrifttype=("arial", 12, "fremhævet"))
uncross_button = Knap (knapramme, tekst="Uncross item", command=uncross_item, bg="#e7305b", skrifttype=("arial", 12, "fremhævet"))
delete_crossed_button = Knap (knapramme, tekst="Slet krydset", kommando=slet_krydset, bg="#e7305b", skrifttype=("arial",12, "fremhævet"))

Organiser knapperne ved hjælp af grid manager i en enkelt række og fem kolonner. Indstil en polstring på 0 i vandret retning for at tildele en vis afstand mellem knapperne,

delete_button.grid (række=0, kolonne=0)
add_button.grid (række=0, kolonne=1, padx=20)
cross_off_button.grid (række=0, kolonne=2)
uncross_button.grid (række=0, kolonne=3, padx=20)
delete_crossed_button.grid (row=0, kolonne=4)

Det mainloop() funktion fortæller Python at køre Tkinter-hændelsesløkken og lytte efter hændelser, indtil du lukker vinduet.

root.mainloop()

Sæt al koden sammen og gå aldrig glip af nogen opgave ved hjælp af denne effektive To-Do List-applikation.

Output af To-Do-applikation ved hjælp af Python

Når du kører programmet ovenfor, vises et vindue, hvor du kan indtaste de opgaver, du vil udføre. Ved at tilføje opgaven og trykke på Tilføj vare knappen, tilføjes opgaven til skærmen.

Ved at vælge en af ​​opgaverne med musen/tastaturet og klikke på Afkryds vare knappen, skifter den valgte opgave farve og bliver svag.

Ved at vælge det krydsede element og klikke på Afkryds vare knappen, fremhæver programmet opgaven tilbage til dens oprindelige farve.

Ved at klikke på Slet krydset knappen, sletter programmet den afkrydsede opgave. Ved at vælge ethvert element og klikke på Slet vare knappen, fjernes det valgte element.

Applikationer, du kan bygge ved hjælp af Python til at øge din produktivitet

Du kan bygge applikationer såsom RescueTime, der sporer, hvor meget tid en bruger bruger på hvilken app. Sådanne apps kan hjælpe dig med at finde ud af, hvilke websteder der distraherer dig mest. Udover dette kan du hente inspiration fra Trello til at oprette tavler med to-do-lister, deadlines og påmindelser.

En musikapplikation, der afspiller en specialdesignet afspilningsliste, kan hjælpe brugerne med at koncentrere sig og fokusere på arbejdet. Du kan endda automatisere GUI-programmer til at udføre gentagne opgaver som login-processer og scripts til at interagere med skrivebordet.