Een To-Do-app is een klassiek project voor elke beginnende programmeur. Ontdek hoe je er een kunt bouwen met Python en Tkinter.

Met een To-Do-toepassing, ook wel taakbeheerder genoemd, kunnen gebruikers hun taken effectiever organiseren en beheren. U kunt een lijst met dagelijkse of wekelijkse taken maken, deadlines en herinneringen instellen, prioriteiten stellen, hun voortgang volgen en ze met anderen delen.

Met een To-Do-app kun je tijd beheren, de productiviteit verhogen en stress verminderen. Dus, hoe kun je er een bouwen in Python?

De Tkinter-module

U kunt Tkinter gebruiken om de To-Do-applicatie te bouwen. Met Tkinter kunt u desktop-applicaties maken. Het biedt een verscheidenheid aan widgets zoals knoppen, labels en tekstvakken die het gemakkelijk maken om apps te ontwikkelen. Sommige applicaties die u met Tkinter kunt ontwikkelen, zijn onder meer een Woordenboek-app, Muziekspeler, A Gewichtsconversietool, en een Word Jumble-spel.

Om Tkinter te installeren, opent u een terminal en voert u het volgende uit:

instagram viewer
pip installeer tkinter

Hoe een to-do-applicatie te bouwen met behulp van Python

Hierin vindt u de broncode van de To-Do Applicatie GitHub-opslagplaats.

Importeer de Tkinter-module en initialiseer het hoofdvenster. De... gebruiken configureren() functie, stelt u de achtergrondkleur in. Stel ook de titel en de grootte van het venster in.

van tkinter importeren *
van tkinter.lettertype importeren Lettertype

wortel = Tk()
root.configure (achtergrond="#A020f0")
hoofdmap.titel('To-Do Lijst Applicatie')
root.geometry("750x500")

Definieer een lettertypestijl en een kaderwidget. Een frame fungeert als een container en is verantwoordelijk voor het regelen van de positie van andere widgets. Stel het bovenliggende venster in waarin u het wilt plaatsen en geef het een verticale opvulling van 10.

Definieer een keuzelijst-widget. Deze component geeft een lijst met items weer die de gebruiker kan selecteren. Stel het bovenliggende venster in waarin u het wilt plaatsen, de letterstijl, de breedte, de hoogte, de achtergrondkleur, de randbreedte en de letterkleur. Stel ook de dikte van de focusmarkering in, de achtergrondkleur die deze moet hebben wanneer deze is geselecteerd, en het uiterlijk van de actieve lijn als Geen.

Organiseer de lijst door deze aan de linkerkant te plaatsen en hem te vertellen om eventuele extra ruimte in beide richtingen op te vullen.

my_font = Lettertype (familie="Ariel", maat=22, gewicht="vetgedrukt")
mijn_frame = Frame (root)
mijn_frame.pack (pady=10)

my_list = Listbox (mijn_frame, font=my_font, width=40, hoogte=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightdikte=0, selecteerachtergrond="#ff0000", actievestijl="geen")
my_list.pack (zijkant=LINKS, vulling=BEIDE)

Definieer een schuifbalk die het programma aan de rechterkant van het frame zal weergeven, waarbij eventuele extra ruimte in beide richtingen wordt opgevuld. Gebruik de configuratie() methode om de schuifbalk te binden aan de keuzelijstwidget die u eerder hebt gedefinieerd. Bij het instellen van de waarde van de yscrollopdracht als mijn_scrollbar.set het krijgt de huidige positie van de schuifbalk bij gebruikersinteractie.

Bij het instellen van de opdrachtparameter als mijn_lijst.yview, wordt de beweging van de schuifbalk gekoppeld aan de functies omhoog en omlaag. Dus wanneer de gebruiker interactie heeft met de schuifbalk, veranderen de weergaven van de keuzelijst dienovereenkomstig.

my_scrollbar = Scrollbar (mijn_frame)
my_scrollbar.pack (zijde=RECHTS, vulling=BEIDE)
mijn_lijst.config (yscrollcommand=mijn_scrollbar.set)
mijn_scrollbar.config (opdracht=mijn_lijst.yview)

Definieer een invoerwidget om taken als invoer van de gebruiker te accepteren. Stel het bovenliggende venster in waarin u het wilt plaatsen, de letterstijl, de breedte en de achtergrondkleur. Organiseer het door een opvulling van 20 toe te voegen in de verticale richting.

Definieer een kader om uw knoppen te ordenen. Plaats ze in het hoofdvenster en geef het een achtergrondkleur. Organiseer het frame met een opvulling van 20 ook in verticale richting.

my_entry = Invoer (root, font=("Ariel", 22), breedte=26, bg='#cf9fff')
mijn_entry.pack (pady=20)

button_frame = Frame (hoofdmap, bg='#a020f0')
button_frame.pack (pady=20)

Definieer een functie, Verwijder item(). Geef de ANKER parameter naar de verwijderfunctie om het geselecteerde item uit de lijst te verwijderen.

defVerwijder item():
mijn_lijst.delete (ANKER)

Definieer een functie, Voeg item toe(). Gebruik de krijgen() functie om de door de gebruiker ingevoerde waarde aan het einde van de lijst op te halen. Als de lijst leeg is, wordt het toegevoegde element het eerste item in de lijst. Nadat u het element aan de lijst hebt toegevoegd, moet u het uit de invoerwidget verwijderen. Gebruik de verwijderfunctie om de ingevoegde tekst van het begin tot het einde te verwijderen.

defVoeg item toe():
mijn_lijst.insert (END, mijn_invoer.get())
mijn_entry.delete(0, EINDE)

Definieer een functie, cross_off_item(). Gebruik de item_config() methode om de letterkleur van de geselecteerde itemtaak in de lijst te wijzigen in een vage kleur, hebt u het item doorgestreept. Wis de selectie die u nu hebt gemaakt van het begin tot het einde van de lengte.

defcross_off_item():
mijn_lijst.itemconfig (mijn_lijst.curselectie(), fg="#dedede")
mijn_lijst.selectie_clear(0, EINDE)

Definieer een functie, uncross_item(). Verander, net als bij de bovenstaande functie, de kleur van de geselecteerde taak terug naar het origineel en wis de selectie volledig.

defuncross_item():
mijn_lijst.itemconfig (mijn_lijst.curselectie(), fg="#5c4033")
mijn_lijst.selectie_clear(0, EINDE)

Definieer een functie, delete_crossed(). Definieer een tellervariabele en herhaal totdat deze kleiner is dan de grootte van de lijst. Als de letterkleur van het item vaag is, verwijdert u dat item uit de lijst. Ga anders door met de iteratie door de tellervariabele te verhogen.

defdelete_crossed():
tel = 0

terwijl count < my_list.size():
als my_list.itemcget (tel, "fg") == "#dedede":
mijn_lijst.delete (mijn_lijst.index (aantal))
anders:
tel += 1

Definieer vijf knoppen: verwijderen, toevoegen, doorstrepen, doorstrepen ongedaan maken en doorkruisen verwijderen. Plaats de knoppen in het knoppenframe dat u eerder hebt gemaakt. Stel de tekst in die op elke knop moet worden weergegeven, de functie die moet worden uitgevoerd wanneer u erop klikt, de achtergrondkleur en de letterstijl.

delete_button = Knop (button_frame, text="Verwijder item", commando=verwijder_item, bg="#e7305b", lettertype=("arieel", 12, "vetgedrukt"))
add_button = Knop (button_frame, text="Voeg item toe", commando=add_item, bg="#e7305b", lettertype=("arieel", 12, "vetgedrukt"))
cross_off_button = Knop (button_frame, text="Doorstreep item", commando=cross_off_item, bg="#e7305b", lettertype=("arieel", 12, "vetgedrukt"))
uncross_button = Knop (button_frame, text="Artikel ongedaan maken", commando=uncross_item, bg="#e7305b", lettertype=("arieel", 12, "vetgedrukt"))
delete_crossed_button = Knop (button_frame, text="Verwijder gekruist", commando=delete_crossed, bg="#e7305b", lettertype=("arieel",12, "vetgedrukt"))

Organiseer de knoppen met behulp van de rastermanager in een enkele rij en vijf kolommen. Stel een opvulling van 0 in de horizontale richting in om wat ruimte tussen de knoppen toe te wijzen,

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

De Hoofdlus() functie vertelt Python om de Tkinter-gebeurtenislus uit te voeren en te luisteren naar gebeurtenissen totdat u het venster sluit.

root.mainloop()

Zet alle code bij elkaar en mis nooit meer een taak met deze efficiënte To-Do List-applicatie.

Uitvoer van To-Do-toepassing met behulp van Python

Bij het uitvoeren van het bovenstaande programma verschijnt er een venster waarin u de taken kunt invoeren die u wilt voltooien. Bij het toevoegen van de taak en het drukken op de Voeg item toe knop, wordt de taak aan het scherm toegevoegd.

Bij het selecteren van een van de taken met de muis/toetsenbord en klikken op de Doorstreep artikel knop, verandert de geselecteerde taak van kleur en wordt hij vaag.

Bij het selecteren van het doorgekruiste item en klikken op de Kruispunt ongedaan maken knop, markeert het programma de taak terug naar zijn oorspronkelijke kleur.

Bij het klikken op de Gekruist verwijderen knop, verwijdert het programma de afgekruiste taak. Bij het selecteren van een item en het klikken op de Verwijder item knop, wordt het geselecteerde item verwijderd.

Toepassingen die u met Python kunt bouwen om uw productiviteit te verhogen

Je kunt applicaties bouwen zoals RescueTime die bijhoudt hoeveel tijd een gebruiker aan welke app besteedt. Dergelijke apps kunnen u helpen ontdekken welke websites u de meeste afleiding bezorgen. Afgezien hiervan kunt u zich laten inspireren door Trello om borden met takenlijsten, deadlines en herinneringen te maken.

Een muziektoepassing die een speciaal ontworpen afspeellijst afspeelt, kan gebruikers helpen zich te concentreren en zich op het werk te concentreren. U kunt zelfs GUI-programma's automatiseren om repetitieve taken uit te voeren, zoals aanmeldingsprocessen en scripts voor interactie met de desktop.