Aplikacija To-Do klasičan je projekt za svakog programera početnika. Saznajte kako ga izraditi koristeći Python i Tkinter.
Aplikacija To-Do, koja se ponekad naziva i upravitelj zadataka, korisnicima omogućuje učinkovitiju organizaciju i upravljanje zadacima. Možete izraditi popis dnevnih ili tjednih zadataka, postaviti rokove i podsjetnike, odrediti im prioritete, pratiti njihov napredak i podijeliti ih s drugima.
Aplikacija To-Do omogućuje vam upravljanje vremenom, povećanje produktivnosti i smanjenje stresa. Dakle, kako ga možete izgraditi u Pythonu?
Modul Tkinter
Možete koristiti Tkinter za izradu To-Do aplikacije. Tkinter vam omogućuje stvaranje desktop aplikacija. Nudi razne widgete kao što su gumbi, oznake i tekstualni okviri koji olakšavaju razvoj aplikacija. Neke aplikacije koje možete razviti koristeći Tkinter uključuju a Aplikacija Rječnik, Glazbeni player, a Alat za pretvorbu težine, i a Igra zbrke riječi.
Da biste instalirali Tkinter, otvorite terminal i pokrenite:
pip instaliraj tkinter
Kako izraditi To-Do aplikaciju koristeći Python
Ovdje možete pronaći izvorni kod aplikacije To-Do GitHub spremište.
Uvezite Tkinter modul i inicijalizirajte korijenski prozor. Koristiti konfigurirati() funkciju, postavite boju pozadine. Također postavite naslov i veličinu prozora.
iz tkinter uvoz *
iz tkinter.font uvoz Font
korijen = Tk()
root.configure (background="#A020f0")
root.title('Aplikacija popisa obveza')
root.geometry("750x500")
Definirajte stil fonta i widget okvira. Okvir djeluje kao spremnik i odgovoran je za raspoređivanje položaja drugih widgeta. Postavite nadređeni prozor u koji ga želite smjestiti i dajte mu okomitu udaljenost od 10.
Definirajte widget okvira s popisom. Ova komponenta prikazuje popis stavki koje korisnik može odabrati. Postavite nadređeni prozor u koji ga želite smjestiti, stil fonta, širinu, visinu, boju pozadine, širinu obruba i boju fonta. Također, postavite debljinu isticanja fokusa, boju pozadine koju treba imati kada je odabrana i izgled aktivne linije kao Nijedan.
Organizirajte popis tako da ga postavite na lijevu stranu i kažete mu da popuni sav dodatni prostor u oba smjera.
my_font = Font (obitelj="Arial", veličina=22, težina="podebljano")
my_frame = Okvir (korijen)
moj_okvir.pack (pady=10)
my_list = Listbox (my_frame, font=my_font, width=40, visina=7, bg="#cf9fff", bd=0, fg="#5c4033", debljina isticanja=0, odaberite pozadinu="#ff0000", aktivni stil="ništa")
my_list.pack (side=LEFT, fill=BOTH)
Definirajte traku za pomicanje koju će program prikazati na desnoj strani okvira, popunjavajući dodatni prostor u oba smjera. Koristiti config() metoda za vezanje trake za pomicanje na widget okvira s popisom koji ste definirali ranije. Prilikom postavljanja vrijednosti naredba yscroll kao moja_klizna traka.set dobiva trenutni položaj trake za pomicanje pri interakciji korisnika.
Prilikom postavljanja parametra naredbe as moj_list.yview, kretanje trake za pomicanje povezuje se s funkcijama gore i dolje. Dakle, kada korisnik komunicira s trakom za pomicanje, prikazi okvira s popisom se mijenjaju u skladu s tim.
my_scrollbar = Traka za pomicanje (moj_okvir)
my_scrollbar.pack (side=RIGHT, fill=BOTH)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)
Definirajte widget za unos kako biste prihvatili zadatke kao unos od korisnika. Postavite nadređeni prozor u koji ga želite smjestiti, stil fonta, širinu i boju pozadine. Organizirajte ga dodavanjem ispune od 20 u okomitom smjeru.
Definirajte okvir za organiziranje gumba. Postavite ih u korijenski prozor i dajte mu boju pozadine. Organizirajte okvir s podstavom od 20 iu okomitom smjeru.
my_entry = Unos (root, font=("Arial", 22), širina=26, bg='#cf9fff')
moj_unos.pack (pady=20)
button_frame = Okvir (root, bg='#a020f0')
button_frame.pack (pady=20)
Definirajte funkciju, delete_item(). Dodaj SIDRO parametar za funkciju brisanja za uklanjanje odabrane stavke s popisa.
defizbrisati_stavku():
my_list.delete (ANCHOR)
Definirajte funkciju, Dodaj Predmet(). Koristiti dobiti() funkcija za dohvaćanje vrijednosti koju je korisnik unio na kraj popisa. Ako je popis prazan, dodani element postat će prvi unos na popisu. Nakon dodavanja elementa na popis morate ga ukloniti iz widgeta za unos. Koristite funkciju brisanja za uklanjanje teksta umetnutog od početka do kraja njegove duljine.
defDodaj Predmet():
my_list.insert (END, my_entry.get())
moj_unos.delete(0, KRAJ)
Definirajte funkciju, prekrižena_stavka(). Koristiti item_config() način da promijenite boju fonta odabrane stavke zadatka na popisu u blijedu boju, prekrižili ste stavku. Očistite odabir koji ste sada napravili od početka do kraja njegove duljine.
defprekrižena_stavka():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, KRAJ)
Definirajte funkciju, uncross_item(). Slično gornjoj funkciji, vratite boju odabranog zadatka na izvornu i u potpunosti poništite odabir.
defponištiti_stavku():
my_list.itemconfig (my_list.curselection(), fg="#5c4033")
my_list.selection_clear(0, KRAJ)
Definirajte funkciju, delete_crossed(). Definirajte varijablu brojača i iterirajte dok ne bude manja od veličine popisa. Ako je boja fonta stavke blijeda, izbrišite tu stavku s popisa. U suprotnom, nastavite iteraciju povećanjem varijable brojača.
defizbrisati_prekriženo():
brojati = 0
dok count < my_list.size():
ako my_list.itemcget (broj, "fg") == "#dedede":
my_list.delete (my_list.index (count))
drugo:
brojati += 1
Definirajte pet gumba: brisanje, dodavanje, prekrižavanje, uklanjanje prekrižanja i brisanje prekriženog. Postavite gumbe u okvir gumba koji ste prethodno izradili. Postavite tekst koji bi svaki gumb trebao prikazati, funkciju koju bi trebao pokrenuti kada ga kliknete, njegovu boju pozadine i stil fonta.
delete_button = Gumb (okvir_gumba, tekst="Izbriši stavku", naredba=brisanje_stavke, bg="#e7305b", font=("arial", 12, "podebljano"))
add_button = Gumb (okvir_gumba, tekst="Dodaj Predmet", naredba=dodaj_stavku, bg="#e7305b", font=("arial", 12, "podebljano"))
cross_off_button = Gumb (okvir_gumba, tekst="Precrtana stavka", naredba=precrtana_stavka, bg="#e7305b", font=("arial", 12, "podebljano"))
uncross_button = Gumb (okvir_gumba, tekst="Poništi prekriženu stavku", naredba=uncross_item, bg="#e7305b", font=("arial", 12, "podebljano"))
delete_crossed_button = Gumb (okvir_gumba, tekst="Izbriši prekriženo", naredba=delete_crossed, bg="#e7305b", font=("arial",12, "podebljano"))
Organizirajte gumbe pomoću upravitelja rešetki u jedan red i pet stupaca. Postavite ispunu od 0 u vodoravnom smjeru kako biste dodijelili razmak između gumba,
delete_button.grid (row=0, stupac=0)
add_button.grid (row=0, stupac=1, padx=20)
cross_off_button.grid (row=0, stupac=2)
uncross_button.grid (row=0, stupac=3, padx=20)
delete_crossed_button.grid (row=0, stupac=4)
The glavna petlja() funkcija govori Pythonu da pokrene Tkinter petlju događaja i osluškuje događaje dok ne zatvorite prozor.
root.mainloop()
Sastavite sav kod zajedno i nikada ne propustite nijedan zadatak pomoću ove učinkovite aplikacije Popis obaveza.
Izlaz To-Do aplikacije pomoću Pythona
Prilikom pokretanja gornjeg programa pojavljuje se prozor u koji možete unijeti zadatke koje želite izvršiti. Kada dodate zadatak i pritisnete tipku Dodaj Predmet gumb, zadatak se dodaje na zaslon.
Odabirom bilo kojeg od zadataka mišem/tipkovnicom i klikom na Precrtani predmet odabrani zadatak mijenja boju i postaje blijed.
Odabirom prekrižene stavke i klikom na Poništi prekrižavanje stavke program vraća zadatak u izvornu boju.
Pritiskom na Izbriši prekriženo gumb, program briše prekriženi zadatak. Odabirom bilo koje stavke i klikom na Izbriši stavku odabrana stavka se uklanja.
Aplikacije koje možete izraditi pomoću Pythona za povećanje produktivnosti
Možete izraditi aplikacije kao što je RescueTime koja prati koliko vremena korisnik troši na koju aplikaciju. Takve vam aplikacije mogu pomoći da otkrijete koja vam web-mjesta najviše odvlače pažnju. Osim toga, možete uzeti inspiraciju iz Trella za izradu ploča s popisima obaveza, rokovima i podsjetnicima.
Glazbena aplikacija koja reproducira posebno dizajniranu listu pjesama može pomoći korisnicima da se koncentriraju i usredotoče na posao. Možete čak i automatizirati GUI programe za izvođenje ponavljajućih zadataka poput procesa prijave i skripti za interakciju s radnom površinom.