Rakendus To-Do on klassikaline projekt igale algajale programmeerijale. Siit saate teada, kuidas seda Pythoni ja Tkinteri abil luua.

To-Do rakendus, mida mõnikord nimetatakse tegumihalduriks, võimaldab kasutajatel oma ülesandeid tõhusamalt korraldada ja hallata. Saate koostada igapäevaste või iganädalaste ülesannete loendi, määrata tähtaegu ja meeldetuletusi, seada need tähtsuse järjekorda, jälgida nende edenemist ja jagada neid teistega.

Rakendus To-Do võimaldab teil hallata aega, tõsta tootlikkust ja vähendada stressi. Niisiis, kuidas saate Pythonis seda luua?

Tkinteri moodul

Rakenduse To-Do loomiseks saate kasutada Tkinterit. Tkinter võimaldab teil luua töölauarakendusi. See pakub mitmesuguseid vidinaid, nagu nupud, sildid ja tekstikastid, mis muudavad rakenduste arendamise lihtsaks. Mõned rakendused, mida saate Tkinteri abil arendada, hõlmavad a Sõnastiku rakendus, Muusikamängija, a Kaalu teisendamise tööriistja a Sõnade segamise mäng.

Tkinteri installimiseks avage terminal ja käivitage:

instagram viewer
pip install tkinter

Kuidas Pythoni abil ülesanderakendust luua

Siit leiate rakenduse To-Do lähtekoodi GitHubi hoidla.

Importige Tkinteri moodul ja lähtestage juuraken. Kasutades configure() funktsiooni, määrake taustavärv. Määrake ka akna pealkiri ja suurus.

alates tkinter importida *
alates tkinter.font importida Font

juur = Tk()
root.configure (background="#A020f0")
root.title("Ülesannete loendi rakendus")
root.geometry("750x500")

Määratlege fondi stiil ja raami vidin. Raam toimib konteinerina ja vastutab teiste vidinate asukoha korraldamise eest. Määrake emaaken, kuhu soovite selle asetada, ja andke sellele vertikaalne polsterdus 10.

Määratlege loendikasti vidin. See komponent kuvab üksuste loendi, mille kasutaja saab valida. Määrake ülemaken, kuhu soovite selle paigutada, fondi stiil, laius, kõrgus, taustavärv, äärise laius ja fondi värv. Samuti määrake fookuse esiletõstmise paksus, taustavärv, mis sellel valimisel peaks olema, ja aktiivse joone välimus Mitte ühtegi.

Korraldage loend, asetades selle vasakule küljele ja käske sellel täita lisaruum mõlemas suunas.

my_font = Font (perekond="Arial", suurus=22, kaal="julge")
my_frame = raam (juur)
minu_raam.pakk (pady=10)

minu_loend = Loendikast (minu_raam, font=minu_font, laius=40, kõrgus =7, bg="#cf9fff", bd=0, fg="#5c4033", esiletõstetud paksus=0, vali taust="#ff0000", activestyle="mitte ükski")
minu_loend.pakk (külg=vasak, täitmine=mõlemad)

Määrake kerimisriba, mida programm kuvab kaadri paremal küljel, täites täiendava ruumi mõlemas suunas. Kasuta config() meetodit kerimisriba sidumiseks varem määratletud loendikasti vidinaga. Väärtuse määramisel yscrollcommand nagu my_scrollbar.set see saab kasutaja suhtlemisel kerimisriba praeguse asukoha.

Käsu parameetri määramisel kui minu_loend.yview, seotakse kerimisriba liikumine üles ja alla funktsioonidega. Seega, kui kasutaja kasutab kerimisriba, muutuvad loendikasti vaated vastavalt.

my_scrollbar = Kerimisriba (minu_raam)
minu_kerimisriba.pakk (külg=PAREM, täitmine=MÕLEMAD)
my_list.config (yscrollcommand=my_scrollbar.set)
my_scrollbar.config (command=my_list.yview)

Määratlege sisestusvidin, et aktsepteerida ülesandeid kasutaja sisendina. Määrake ülemaken, kuhu soovite selle paigutada, fondi stiil, laius ja taustavärv. Korraldage see, lisades vertikaalsuunas polsterduse 20.

Määrake nuppude korraldamiseks raam. Asetage need juuraknasse ja andke sellele taustavärv. Korraldage raam polsterdusega 20 ka vertikaalsuunas.

my_entry = Kirje (juur, font=("Arial", 22), laius=26, bg='#cf9fff')
my_entry.pack (pady=20)

button_frame = Raam (juur, bg='#a020f0')
button_frame.pack (pady=20)

Määratlege funktsioon, delete_item(). Mööda ANKR parameeter kustutamisfunktsioonile, et eemaldada valitud üksus loendist.

defkustuta_üksus():
my_list.delete (ANCHOR)

Määratlege funktsioon, add_item(). Kasuta saada () funktsioon kasutaja sisestatud väärtuse toomiseks loendi lõppu. Kui loend on tühi, saab lisatud elemendist loendi esimene kirje. Pärast elemendi loendisse lisamist peate selle sisestusvidinast eemaldama. Kasutage kustutamisfunktsiooni, et eemaldada selle pikkuse algusest lõpuni sisestatud tekst.

deflisa_üksus():
minu_loend.insert (END, minu_kirje.get())
my_entry.delete(0, LÕPP)

Määratlege funktsioon, rist_off_item(). Kasuta item_config() meetod loendis valitud üksuse ülesande fondi värvi muutmiseks nõrgaks värviks, olete üksuse maha kriipsutanud. Tühjendage praegu tehtud valik selle pikkuse algusest lõpuni.

defrist_välja_üksus():
my_list.itemconfig (my_list.curselection(), fg="#dedede")
my_list.selection_clear(0, LÕPP)

Määratlege funktsioon, uncross_item(). Sarnaselt ülaltoodud funktsiooniga muutke valitud ülesande värv tagasi algseks ja tühjendage valik täielikult.

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

Määratlege funktsioon, delete_crossed(). Määratlege loenduri muutuja ja korrake, kuni see on loendi suurusest väiksem. Kui üksuse fondivärv on nõrk, kustutage see üksus loendist. Vastasel juhul jätkake iteratsiooni loenduri muutuja suurendamisega.

defdelete_crossed():
arv = 0

samal ajal count < my_list.size():
kui my_list.itemcget (count, "fg") == "#dedede":
minu_loend.delete (minu_loend.indeks (loendus))
muidu:
loe += 1

Määratlege viis nuppu: kustutage, lisage, kriipsutage maha, eemaldage rist ja kustutage läbikriipsutatud. Asetage nupud varem loodud nupuraami. Määrake tekst, mida iga nupp peab kuvama, funktsioon, mis sellel klõpsamisel käivitatakse, taustavärv ja fondi stiil.

delete_button = Nupp (button_frame, text="Kustuta üksus", käsk=kustuta_üksus, bg="#e7305b", font=("arial", 12, "julge"))
add_button = Nupp (button_frame, text="Lisa üksus", käsk=lisa_üksus, bg="#e7305b", font=("arial", 12, "julge"))
cross_off_button = Nupp (button_frame, text="Ühe kriipsutamine", käsk=cross_off_item, bg="#e7305b", font=("arial", 12, "julge"))
uncross_button = Nupp (button_frame, text="Tühista üksus", käsk=uncross_item, bg="#e7305b", font=("arial", 12, "julge"))
delete_crossed_button = Nupp (button_frame, text="Kustuta ristitud", käsk=kustuta_rist, bg="#e7305b", font=("arial",12, "julge"))

Korraldage nupud ruudustikuhalduri abil ühte ritta ja viie veergu. Seadke täidis 0 horisontaalsuunas, et jätta nuppude vahele teatud vahe,

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

The mainloop() funktsioon käsib Pythonil käivitada Tkinteri sündmusetsükli ja kuulata sündmusi, kuni sulgete akna.

root.mainloop()

Selle tõhusa ülesannete loendi rakenduse abil pange kogu kood kokku ja ärge jätke kunagi ühestki ülesandest ilma.

Ülesannete rakenduse väljund Pythoni abil

Ülaltoodud programmi käivitamisel kuvatakse aken, kuhu saate sisestada ülesanded, mida soovite täita. Ülesande lisamisel ja nupule vajutamisel Lisa üksus nuppu, lisatakse ülesanne ekraanile.

Kui valite hiire/klaviatuuriga mis tahes ülesande ja klõpsate nuppu Üksuse kriipsutus maha nuppu, muudab valitud ülesanne oma värvi ja muutub tuhmiks.

Kui valite läbikriipsutatud üksuse ja klõpsate nuppu Eemalda üksus nuppu, tõstab programm ülesande algse värviga esile.

Klõpsates Kustuta Crossed nuppu, kustutab programm läbikriipsutatud ülesande. Mis tahes üksuse valimisel ja nupul klõpsamisel Kustuta üksus nuppu, valitud üksus eemaldatakse.

Rakendused, mida saate Pythoni abil oma tootlikkuse suurendamiseks luua

Saate luua selliseid rakendusi nagu RescueTime, mis jälgib, kui palju aega kasutaja millise rakendusega veedab. Sellised rakendused aitavad teil avastada, millised veebisaidid häirivad teid kõige rohkem. Peale selle saate Trellost inspiratsiooni ammutada ülesannete loendite, tähtaegade ja meeldetuletustega tahvlite loomiseks.

Muusikarakendus, mis esitab spetsiaalselt loodud esitusloendit, võib aidata kasutajatel keskenduda ja keskenduda tööle. Saate isegi automatiseerida GUI-programme, et täita korduvaid toiminguid, nagu sisselogimisprotsessid ja skriptid töölauaga suhtlemiseks.