Aplikácia To-Do je klasický projekt pre každého začínajúceho programátora. Zistite, ako ho vytvoriť pomocou Pythonu a Tkinter.
Aplikácia To-Do, niekedy označovaná ako správca úloh, umožňuje používateľom efektívnejšie organizovať a spravovať svoje úlohy. Môžete si vytvoriť zoznam denných alebo týždenných úloh, nastaviť termíny a pripomienky, určiť im priority, sledovať ich priebeh a zdieľať ich s ostatnými.
Aplikácia To-Do vám umožňuje spravovať čas, zvyšovať produktivitu a znižovať stres. Ako si ho teda môžete vytvoriť v Pythone?
Modul Tkinter
Na zostavenie aplikácie To-Do môžete použiť Tkinter. Tkinter vám umožňuje vytvárať desktopové aplikácie. Ponúka množstvo miniaplikácií, ako sú tlačidlá, štítky a textové polia, ktoré uľahčujú vývoj aplikácií. Niektoré aplikácie, ktoré môžete vyvíjať pomocou Tkinter, zahŕňajú a Aplikácia Slovník, Hudobný prehrávač, a Nástroj na konverziu hmotnostia a Hra na miešanie slov.
Ak chcete nainštalovať Tkinter, otvorte terminál a spustite:
pip nainštalovať tkinter
Ako vytvoriť To-Do aplikáciu pomocou Pythonu
Zdrojový kód aplikácie To-Do nájdete v tomto úložisko GitHub.
Importujte modul Tkinter a inicializujte koreňové okno. Pomocou konfigurovať () funkciu, nastavte farbu pozadia. Nastavte aj nadpis a veľkosť okna.
od tkinter importovať *
od tkinter.font importovať Písmo
koreň = Tk()
root.configure (pozadie="#A020f0")
root.title(Aplikácia „To-Do List“)
root.geometry("750 x 500")
Definujte štýl písma a miniaplikáciu rámčeka. Rám funguje ako kontajner a je zodpovedný za usporiadanie polohy iných widgetov. Nastavte rodičovské okno, do ktorého ho chcete umiestniť, a dajte mu zvislú výplň 10.
Definujte miniaplikáciu zoznamu. Tento komponent zobrazuje zoznam položiek, ktoré si môže používateľ vybrať. Nastavte rodičovské okno, do ktorého ho chcete umiestniť, štýl písma, šírku, výšku, farbu pozadia, šírku okraja a farbu písma. Tiež nastavte hrúbku zvýraznenia, farbu pozadia, ktorú by malo mať pri výbere, a vzhľad aktívnej čiary ako žiadne.
Usporiadajte zoznam tak, že ho umiestnite na ľavú stranu a poviete mu, aby vyplnil všetky ďalšie miesta v oboch smeroch.
my_font = Písmo (rodina="Arial", veľkosť =22, hmotnosť ="tučné")
my_frame = Rám (root)
my_frame.pack (pady=10)
my_list = Listbox (my_frame, font=my_font, width=40, výška=7, bg="#cf9fff", bd=0, fg="#5c4033", hrúbka zvýraznenia=0, vyberte pozadie="#ff0000", activestyle="žiadny")
my_list.pack (side=LEFT, fill=BOTH)
Definujte posuvnú lištu, ktorú program zobrazí na pravej strane rámca a vyplní všetky ďalšie miesta v oboch smeroch. Použi config() metóda na naviazanie posúvača na miniaplikáciu zoznamu, ktorú ste definovali skôr. Pri nastavení hodnoty yscrollcommand ako my_scrollbar.set získa aktuálnu polohu posúvača pri interakcii používateľa.
Pri nastavení parametra príkazu ako my_list.yview, pohyb posúvača sa prepojí s funkciami nahor a nadol. Takže, keď používateľ interaguje s posúvačom, zobrazenie zoznamu sa zodpovedajúcim spôsobom zmení.
my_scrollbar = posuvník (my_frame)
my_scrollbar.pack (strana=RIGHT, fill=BOTH)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)
Definujte vstupný widget, ktorý akceptuje úlohy ako vstup od používateľa. Nastavte rodičovské okno, do ktorého ho chcete umiestniť, štýl písma, šírku a farbu pozadia. Zorganizujte to pridaním výplne 20 vo vertikálnom smere.
Definujte rámček na usporiadanie tlačidiel. Umiestnite ich do koreňového okna a dajte mu farbu pozadia. Usporiadajte rám s výplňou 20 aj vo vertikálnom smere.
my_entry = Záznam (root, font=("Arial", 22), šírka=26, bg='#cf9fff')
my_entry.pack (pady=20)
button_frame = Rám (root, bg='#a020f0')
button_frame.pack (pady=20)
Definujte funkciu, delete_item(). Prejdite KOTVA parameter na funkciu odstránenia na odstránenie vybranej položky zo zoznamu.
defdelete_item():
my_list.delete (ANCHOR)
Definujte funkciu, pridať položku(). Použi dostať () funkcia na získanie hodnoty zadanej používateľom na koniec zoznamu. Ak je zoznam prázdny, pridaný prvok sa stane prvým záznamom v zozname. Po pridaní prvku do zoznamu ho musíte odstrániť zo vstupného widgetu. Pomocou funkcie zmazať odstránite text vložený od začiatku do konca jeho dĺžky.
defpridať položku():
my_list.insert (END, my_entry.get())
my_entry.delete(0, KONIEC)
Definujte funkciu, cross_off_item(). Použi item_config() spôsob, ako zmeniť farbu písma úlohy vybratej položky v zozname na slabú farbu, položku ste preškrtli. Vymažte výber, ktorý ste teraz urobili, od začiatku do konca jeho dĺžky.
defcross_off_item():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, KONIEC)
Definujte funkciu, uncross_item(). Podobne ako vo vyššie uvedenej funkcii zmeňte farbu vybranej úlohy späť na pôvodnú a výber úplne zrušte.
defuncross_item():
my_list.itemconfig (my_list.curselection(), fg="#5c4033")
my_list.selection_clear(0, KONIEC)
Definujte funkciu, delete_crossed(). Definujte premennú počítadla a opakujte, kým nebude menšia ako veľkosť zoznamu. Ak je farba písma položky slabá, odstráňte túto položku zo zoznamu. V opačnom prípade pokračujte v iterácii zvyšovaním premennej počítadla.
defdelete_crossed():
počítať = 0
zatiaľ čo počet < môj_zoznam.veľkosť():
ak my_list.itemcget (počet, "fg") == "#dedede":
my_list.delete (my_list.index (count))
inak:
počítať += 1
Definujte päť tlačidiel: odstrániť, pridať, prečiarknuť, zrušiť prečiarknutie a odstrániť prečiarknuté. Umiestnite tlačidlá do rámčeka tlačidiel, ktorý ste vytvorili predtým. Nastavte text, ktorý má každé tlačidlo zobraziť, funkciu, ktorú má spustiť, keď naň kliknete, farbu pozadia a štýl písma.
delete_button = Tlačidlo (rámček_tlačidla, text="Odstrániť položku", command=delete_item, bg="#e7305b", font=("arial", 12, "tučné"))
add_button = Tlačidlo (rámček_tlačidla, text="Pridať položku", command=add_item, bg="#e7305b", font=("arial", 12, "tučné"))
cross_off_button = Tlačidlo (rámček_tlačidla, text="Vyškrtnúť položku", command=cross_off_item, bg="#e7305b", font=("arial", 12, "tučné"))
uncross_button = Tlačidlo (rámček_tlačidla, text="Odobrať položku", command=uncross_item, bg="#e7305b", font=("arial", 12, "tučné"))
delete_crossed_button = Tlačidlo (rámček_tlačidla, text="Odstrániť prekrížené", command=delete_crossed, bg="#e7305b", font=("arial",12, "tučné"))
Usporiadajte tlačidlá pomocou správcu mriežky do jedného riadka a piatich stĺpcov. Nastavte odsadenie na 0 v horizontálnom smere, aby ste medzi tlačidlami vytvorili určitý priestor,
delete_button.grid (riadok=0, stĺpec=0)
add_button.grid (riadok=0, stĺpec=1, padx=20)
cross_off_button.grid (riadok=0, stĺpec=2)
uncross_button.grid (riadok=0, stĺpec=3, padx=20)
delete_crossed_button.grid (riadok=0, stĺpec=4)
The mainloop() funkcia hovorí Pythonu, aby spustil slučku udalostí Tkinter a počúval udalosti, kým nezatvoríte okno.
root.mainloop()
Poskladajte celý kód a už nikdy nezmeškáte žiadnu úlohu pomocou tejto efektívnej aplikácie Zoznam úloh.
Výstup aplikácie To-Do pomocou Pythonu
Po spustení programu vyššie sa zobrazí okno, v ktorom môžete zadať úlohy, ktoré chcete dokončiť. Po pridaní úlohy a stlačení tlačidla Pridať položku tlačidlo, úloha sa pridá na obrazovku.
Po výbere ktorejkoľvek z úloh myšou/klávesnicou a kliknutím na Preškrtnutá položka tlačidlo, zvolená úloha zmení farbu a stmavne.
Po výbere preškrtnutej položky a kliknutí na Uncross Item tlačidlo, program zvýrazní úlohu späť na pôvodnú farbu.
Po kliknutí na Odstrániť prekrížené tlačidlo, program vymaže preškrtnutú úlohu. Po výbere ľubovoľnej položky a kliknutí na Odstrániť položku tlačidlo, vybraná položka sa odstráni.
Aplikácie, ktoré môžete vytvoriť pomocou Pythonu na zvýšenie vašej produktivity
Môžete vytvárať aplikácie, ako je RescueTime, ktorá sleduje, koľko času používateľ strávi v ktorej aplikácii. Takéto aplikácie vám môžu pomôcť zistiť, ktoré webové stránky vás najviac rozptyľujú. Okrem toho sa môžete inšpirovať Trello na vytváranie tabúľ so zoznamami úloh, termínmi a pripomienkami.
Hudobná aplikácia, ktorá prehráva špeciálne navrhnutý zoznam skladieb, môže používateľom pomôcť sústrediť sa na prácu. Môžete dokonca automatizovať programy GUI na vykonávanie opakujúcich sa úloh, ako sú prihlasovacie procesy a skripty na interakciu s pracovnou plochou.