En Att göra-app är ett klassiskt projekt för alla blivande programmerare. Ta reda på hur du bygger en med Python och Tkinter.
En Att göra-applikation, ibland kallad en uppgiftshanterare, låter användare organisera och hantera sina uppgifter mer effektivt. Du kan skapa en lista med dagliga eller veckovisa uppgifter, ställa in deadlines och påminnelser, prioritera dem, spåra deras framsteg och dela dem med andra.
En Att göra-app låter dig hantera tid, öka produktiviteten och minska stress. Så, hur kan du bygga en i Python?
Tkinter-modulen
Du kan använda Tkinter för att bygga att göra-applikationen. Tkinter låter dig skapa skrivbordsapplikationer. Den erbjuder en mängd olika widgets som knappar, etiketter och textrutor som gör det enkelt att utveckla appar. Vissa applikationer du kan utveckla med Tkinter inkluderar en Ordbok app, Musikspelare, a Viktkonverteringsverktyg, och en Word Jumble-spel.
För att installera Tkinter, öppna en terminal och kör:
pip installera tkinter
Hur man bygger en att göra-applikation med Python
Du kan hitta källkoden för att göra-applikationen i denna GitHub-förråd.
Importera Tkinter-modulen och initiera rotfönstret. Använda configure() funktion, ställ in bakgrundsfärgen. Ställ även in titeln och storleken på fönstret.
från tkinter importera *
från tkinter.font importera Font
root = Tk()
root.configure (bakgrund="#A020f0")
root.title("Att göra-lista-applikation")
root.geometry("750x500")
Definiera en teckensnittsstil och en ramwidget. En ram fungerar som en behållare och är ansvarig för att ordna positionen för andra widgets. Ställ in det överordnade fönstret du vill placera det i och ge det en vertikal utfyllnad på 10.
Definiera en listbox-widget. Den här komponenten visar en lista med objekt som användaren kan välja. Ställ in det överordnade fönstret du vill placera det i, typsnittsstil, bredd, höjd, bakgrundsfärg, kantbredd och teckensnittsfärg. Ställ även in fokusmarkeringens tjocklek, bakgrundsfärgen den ska ha när den är markerad och utseendet på den aktiva linjen som Ingen.
Organisera listan genom att placera den på vänster sida och be den fylla eventuellt extra utrymme i båda riktningarna.
my_font = Font (familj="Arial", storlek=22, vikt="djärv")
my_frame = Ram (rot)
my_frame.pack (pady=10)
my_list = Listbox (my_frame, font=my_font, width=40, höjd=7, bg="#cf9fff", bd=0, fg="#5c4033", highlightthickness=0, välj bakgrund="#ff0000", activestyle="ingen")
my_list.pack (side=LEFT, fill=BOTH)
Definiera en rullningslist som programmet kommer att visa på höger sida av ramen och fyller eventuellt extra utrymme i båda riktningarna. Använd config() metod för att binda rullningslisten till listbox-widgeten som du definierade tidigare. När du ställer in värdet på yscrollcommand som my_scrollbar.set den får den aktuella positionen för rullningslisten vid användarinteraktion.
Vid inställning av kommandoparametern som my_list.yview, rullningslistens rörelse kopplas till funktionerna upp och ner. Så när användaren interagerar med rullningslisten ändras listboxvyerna därefter.
my_scrollbar = Scrollbar (min_ram)
my_scrollbar.pack (side=HÖGER, fyll=BOTH)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)
Definiera en inmatningswidget för att acceptera uppgifter som input från användaren. Ställ in det överordnade fönstret du vill placera det i, typsnittet, bredden och bakgrundsfärgen. Organisera det genom att lägga till en stoppning på 20 i vertikal riktning.
Definiera en ram för att organisera dina knappar. Placera dem i rotfönstret och ge det en bakgrundsfärg. Organisera ramen med en stoppning på 20 i vertikal riktning också.
my_entry = Entry (root, font=("Arial", 22), bredd=26, bg='#cf9fff')
my_entry.pack (pady=20)
button_frame = Ram (root, bg='#a020f0')
button_frame.pack (pady=20)
Definiera en funktion, radera sak(). Skicka ANKARE parameter till raderingsfunktionen för att ta bort det valda objektet från listan.
defradera sak():
my_list.delete (ANCHOR)
Definiera en funktion, Lägg till vara(). Använd skaffa sig() funktion för att hämta värdeinmatningen av användaren till slutet av listan. Om listan är tom kommer elementet som läggs till att bli den första posten i listan. När du har lagt till elementet i listan måste du ta bort det från inmatningswidgeten. Använd raderingsfunktionen för att ta bort texten från början till slutet av dess längd.
defLägg till vara():
my_list.insert (END, my_entry.get())
my_entry.delete(0, SLUTET)
Definiera en funktion, cross_off_item(). Använd item_config() metod för att ändra teckensnittsfärgen för den valda objektuppgiften i listan till en svag färg, har du kryssat av objektet. Rensa valet du gjorde nu från början till slutet av dess längd.
defcross_off_item():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, SLUTET)
Definiera en funktion, uncross_item(). I likhet med ovanstående funktion, ändra färgen på den valda uppgiften tillbaka till originalet och rensa markeringen helt.
defuncross_item():
my_list.itemconfig (my_list.curselection(), fg="#5c4033")
my_list.selection_clear(0, SLUTET)
Definiera en funktion, delete_crossed(). Definiera en räknarvariabel och iterera tills den är mindre än listans storlek. Om objektets teckensnittsfärg är svag, ta bort objektet från listan. Annars fortsätter du iterationen genom att öka räknarvariabeln.
defdelete_crossed():
räkna = 0
medan count < my_list.size():
om my_list.itemcget (count, "fg") == "#dedede":
my_list.delete (my_list.index (count))
annan:
räkna += 1
Definiera fem knappar: ta bort, lägg till, kryssa av, ta bort kryss och ta bort kryssat av. Placera knapparna i knappramen du skapade tidigare. Ställ in texten som varje knapp ska visa, vilken funktion den ska köra när du klickar på den, dess bakgrundsfärg och teckensnittsstil.
delete_button = Knapp (button_frame, text="Radera sak", kommando=radera_objekt, bg="#e7305b", typsnitt=("arial", 12, "djärv"))
add_button = Knapp (button_frame, text="Lägg till vara", kommando=lägg till_objekt, bg="#e7305b", typsnitt=("arial", 12, "djärv"))
cross_off_button = Knapp (button_frame, text="Krysa av föremål", command=cross_off_item, bg="#e7305b", typsnitt=("arial", 12, "djärv"))
uncross_button = Knapp (button_frame, text="Uncross objekt", command=uncross_item, bg="#e7305b", typsnitt=("arial", 12, "djärv"))
delete_crossed_button = Knapp (button_frame, text="Radera korsad", kommando=delete_crossed, bg="#e7305b", typsnitt=("arial",12, "djärv"))
Organisera knapparna med hjälp av rutnätshanteraren i en enda rad och fem kolumner. Ställ in en utfyllnad på 0 i horisontell riktning för att tilldela lite avstånd mellan knapparna,
delete_button.grid (rad=0, kolumn=0)
add_button.grid (rad=0, kolumn=1, padx=20)
cross_off_button.grid (rad=0, kolumn=2)
uncross_button.grid (rad=0, kolumn=3, padx=20)
delete_crossed_button.grid (rad=0, kolumn=4)
De mainloop() funktionen säger åt Python att köra Tkinter-händelsslingan och lyssna efter händelser tills du stänger fönstret.
root.mainloop()
Sätt ihop all kod och missa aldrig någon uppgift med denna effektiva att-göra-lista-applikation.
Utdata från att göra-applikation med Python
När du kör programmet ovan visas ett fönster där du kan ange de uppgifter du vill utföra. När du lägger till uppgiften och trycker på Lägg till vara knappen läggs uppgiften till på skärmen.
När du väljer någon av uppgifterna med musen/tangentbordet och klickar på Kryssa av objekt knappen ändrar den valda uppgiften färg och blir svag.
När du väljer det korsade objektet och klickar på Uncross objekt knappen, markerar programmet uppgiften tillbaka till sin ursprungliga färg.
När du klickar på Ta bort korsad knappen raderar programmet den avkryssade uppgiften. När du väljer ett objekt och klickar på Radera sak knappen tas det valda objektet bort.
Applikationer du kan bygga med Python för att öka din produktivitet
Du kan bygga applikationer som RescueTime som spårar hur mycket tid en användare spenderar på vilken app. Sådana appar kan hjälpa dig att upptäcka vilka webbplatser som orsakar dig mest distraktion. Förutom detta kan du hämta inspiration från Trello för att skapa anslagstavlor med att göra-listor, deadlines och påminnelser.
En musikapplikation som spelar en specialdesignad spellista kan hjälpa användare att koncentrera sig och fokusera på arbetet. Du kan till och med automatisera GUI-program för att utföra repetitiva uppgifter som inloggningsprocesser och skript för att interagera med skrivbordet.