Aplikacija To-Do je klasičen projekt za vsakega nadobudnega programerja. Ugotovite, kako ga zgraditi z uporabo Pythona in Tkinterja.

Aplikacija To-Do, včasih imenovana tudi upravitelj opravil, uporabnikom omogoča učinkovitejšo organizacijo in upravljanje svojih nalog. Ustvarite lahko seznam dnevnih ali tedenskih nalog, nastavite roke in opomnike, jih razvrstite po prednosti, spremljate njihov napredek in jih delite z drugimi.

Aplikacija To-Do vam omogoča upravljanje časa, povečanje produktivnosti in zmanjšanje stresa. Torej, kako ga lahko sestavite v Pythonu?

Modul Tkinter

Za izdelavo aplikacije To-Do lahko uporabite Tkinter. Tkinter omogoča ustvarjanje namiznih aplikacij. Ponuja različne pripomočke, kot so gumbi, oznake in besedilna polja, ki olajšajo razvoj aplikacij. Nekatere aplikacije, ki jih lahko razvijete s Tkinterjem, vključujejo a Aplikacija slovar, Predvajalnik glasbe, a Orodje za pretvorbo težein a Igra Word Mešanica.

Če želite namestiti Tkinter, odprite terminal in zaženite:

pip namestite tkinter
instagram viewer

Kako zgraditi aplikacijo To-Do z uporabo Pythona

Tu lahko najdete izvorno kodo aplikacije To-Do Repozitorij GitHub.

Uvozite modul Tkinter in inicializirajte korensko okno. Uporabljati konfiguriraj() funkcijo, nastavite barvo ozadja. Nastavite tudi naslov in velikost okna.

od tkinter uvoz *
od tkinter.font uvoz Pisava

koren = Tk()
root.configure (background="#A020f0")
root.title(Aplikacija za seznam opravil)
root.geometry("750x500")

Določite slog pisave in pripomoček za okvir. Okvir deluje kot vsebnik in je odgovoren za urejanje položaja drugih pripomočkov. Nastavite nadrejeno okno, v katerega ga želite postaviti, in mu dajte navpični odmik 10.

Določite gradnik s seznamom. Ta komponenta prikaže seznam elementov, ki jih lahko uporabnik izbere. Nastavite nadrejeno okno, v katerega ga želite postaviti, slog pisave, širino, višino, barvo ozadja, širino obrobe in barvo pisave. Nastavite tudi debelino poudarka fokusa, barvo ozadja, ki naj bi jo imela, ko je izbrana, in videz aktivne črte kot Noben.

Organizirajte seznam tako, da ga postavite na levo stran in mu naročite, naj zapolni morebitni dodatni prostor v obe smeri.

my_font = Pisava (družina="Arial", velikost=22, teža="krepko")
my_frame = Okvir (koren)
moj_okvir.pack (pady=10)

my_list = Listbox (my_frame, font=my_font, width=40, višina=7, bg="#cf9fff", bd=0, fg="#5c4033", debelina osvetlitve=0, izberite ozadje="#ff0000", aktivni slog="noben")
my_list.pack (side=LEVO, fill=BOTH)

Določite drsni trak, ki ga bo program prikazal na desni strani okvirja in zapolnil morebitni dodatni prostor v obe smeri. Uporabi config() metoda za povezovanje drsnega traku s pripomočkom seznamskega polja, ki ste ga definirali prej. Pri nastavitvi vrednosti ukaz yscroll kot my_scrollbar.set ob interakciji uporabnika pridobi trenutni položaj drsnega traku.

Pri nastavitvi ukaznega parametra kot my_list.yview, se premikanje drsnega traku poveže s funkcijama gor in dol. Torej, ko uporabnik komunicira z drsnim trakom, se pogledi seznamskega polja ustrezno spremenijo.

my_scrollbar = Drsni trak (moj_okvir)
my_scrollbar.pack (side=RIGHT, fill=BOTH)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (ukaz=my_list.yview)

Določite vnosni pripomoček za sprejemanje nalog kot vnos uporabnika. Nastavite nadrejeno okno, v katerega ga želite postaviti, slog pisave, širino in barvo ozadja. Organizirajte ga tako, da dodate oblazinjenje 20 v navpični smeri.

Določite okvir za organiziranje gumbov. Postavite jih v korensko okno in mu dajte barvo ozadja. Organizirajte okvir z oblazinjenjem 20 tudi v navpični smeri.

my_entry = Vnos (koren, pisava=("Arial", 22), širina=26, bg='#cf9fff')
moj_vnos.pack (pady=20)

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

Definirajte funkcijo, delete_item(). Predaj SIDRO parameter za funkcijo brisanja, da odstranite izbrani element s seznama.

defdelete_item():
my_list.delete (SIDRO)

Definirajte funkcijo, add_item(). Uporabi dobiti () funkcijo za pridobitev vrednosti, ki jo vnese uporabnik, na konec seznama. Če je seznam prazen, bo dodan element postal prvi vnos na seznamu. Ko dodate element na seznam, ga morate odstraniti iz pripomočka za vnos. S funkcijo brisanja odstranite vstavljeno besedilo od začetka do konca njegove dolžine.

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

Definirajte funkcijo, prečrtani_postavka(). Uporabi item_config() način za spremembo barve pisave izbranega opravila predmeta na seznamu v bledo barvo, ste predmet prečrtali. Počistite izbor, ki ste ga zdaj naredili, od začetka do konca njegove dolžine.

defprečrtani_postavka():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, KONEC)

Definirajte funkcijo, uncross_item(). Podobno kot pri zgornji funkciji spremenite barvo izbranega opravila nazaj na izvirno in popolnoma počistite izbor.

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

Definirajte funkcijo, delete_crossed(). Definirajte spremenljivko števca in ponavljajte, dokler ni manjša od velikosti seznama. Če je barva pisave elementa bleda, izbrišite ta element s seznama. V nasprotnem primeru nadaljujte ponovitev s povečanjem spremenljivke števca.

defdelete_crossed():
štetje = 0

medtem štetje < my_list.size():
če my_list.itemcget (štetje, "fg") == "#dedede":
my_list.delete (my_list.index (štetje))
drugače:
štetje += 1

Določite pet gumbov: izbriši, dodaj, prečrtaj, prečrtaj in izbriši prečrtano. Postavite gumbe v okvir gumbov, ki ste ga ustvarili prej. Nastavite besedilo, ki naj se prikaže na vsakem gumbu, funkcijo, ki naj se izvaja, ko ga kliknete, barvo ozadja in slog pisave.

delete_button = Gumb (okvir_gumba, besedilo="Izbriši predmet", ukaz=izbriši_predmet, bg="#e7305b", pisava=("arial", 12, "krepko"))
add_button = Gumb (okvir_gumba, besedilo="Dodaj predmet", ukaz=dodaj_predmet, bg="#e7305b", pisava=("arial", 12, "krepko"))
cross_off_button = Gumb (okvir_gumba, besedilo="Prečrtaj element", ukaz=prečrtani_element, bg="#e7305b", pisava=("arial", 12, "krepko"))
uncross_button = Gumb (okvir_gumba, besedilo="Odkrižaj predmet", command=uncross_item, bg="#e7305b", pisava=("arial", 12, "krepko"))
delete_crossed_button = Gumb (okvir_gumba, besedilo="Izbriši prekrižano", command=delete_crossed, bg="#e7305b", pisava=("arial",12, "krepko"))

Z upraviteljem mrež razvrstite gumbe v eno vrstico in pet stolpcev. Nastavite odmik 0 v vodoravni smeri, da dodelite nekaj razmika med gumbi,

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

The glavna zanka() funkcija pove Pythonu, naj zažene zanko dogodkov Tkinter in posluša dogodke, dokler ne zaprete okna.

root.mainloop()

Sestavite vso kodo in nikoli ne zamudite nobene naloge s to učinkovito aplikacijo To-Do List.

Izpis aplikacije To-Do z uporabo Pythona

Ko zaženete zgornji program, se prikaže okno, v katerega lahko vnesete naloge, ki jih želite dokončati. Ko dodate nalogo in pritisnete Dodaj predmet se opravilo doda na zaslon.

Ko z miško/tipkovnico izberete katero koli nalogo in kliknete Prečrtani predmet izbrano opravilo spremeni barvo in postane bledo.

Ko izberete prekrižani element in kliknete Odkrižaj predmet gumb, program osvetli nalogo nazaj v prvotno barvo.

Ob kliku na Izbriši prekrižano program izbriše prečrtano opravilo. Ko izberete kateri koli element in kliknete Izbriši element se izbrani element odstrani.

Aplikacije, ki jih lahko ustvarite s Pythonom za povečanje vaše produktivnosti

Ustvarite lahko aplikacije, kot je RescueTime, ki spremlja, koliko časa uporabnik porabi za katero aplikacijo. Takšne aplikacije vam lahko pomagajo odkriti, katera spletna mesta vas najbolj motijo. Poleg tega se lahko navdihnete pri Trellu, da ustvarite table s seznami opravil, roki in opomniki.

Glasbena aplikacija, ki predvaja posebej oblikovan seznam predvajanja, lahko uporabnikom pomaga pri koncentraciji in osredotočenosti na delo. Programe GUI lahko celo avtomatizirate za izvajanje ponavljajočih se nalog, kot so postopki prijave in skripti za interakcijo z namizjem.