Kalendoriaus kūrimas yra puikus būdas sužinoti apie GUI programų kūrimą naudojant Python Tkinter modulį. Galite naudoti šią programą norėdami tvarkyti ir planuoti įvykius iš anksto.
Toliau galite išplėsti programą, kad galėtumėte stebėti būsimus susitikimus ir nustatyti priminimus. Jūs netgi galite pradėti bendradarbiauti su kitų vartotojų kalendoriais, kad išvengtumėte planavimo konfliktų.
Viskas prasideda nuo pagrindinio GUI kalendoriaus programos skeleto.
Kalendoriaus, Tkinterio ir Datos laiko moduliai
Norėdami sukurti GUI kalendorių, naudosite kalendorių, Tkinter ir DateTime modulį. The Kalendoriaus modulis ateina su Python ir leidžia atlikti su data, mėnesiu ir kalendoriumi susijusius veiksmus.
„Tkinter“ leidžia kurti darbalaukio programas. Ji siūlo įvairius valdiklius, naudingas bibliotekas, drobės objektus ir HTML/XML/PDF analizatorius. Norėdami sukurti GUI programą, jums tereikia:
- Importuoti biblioteką.
- Sukurkite langą.
- Pridėkite valdiklius prie to lango.
- Iškvieskite pagrindinio įvykio kilpą, kad atliktumėte veiksmus, pagrįstus vartotojo sąveika.
Norėdami įdiegti „Tkinter“ savo sistemoje, atidarykite terminalą ir paleiskite:
pip įdiegti tkinter
DateTime modulis yra dar vienas integruotas modulis. Ji siūlo keletą klasių, kuriose galima spręsti apie datas, laiką ir laiko intervalus. Naudodami šį modulį galite sukurti įvykių planuoklį, žadintuvas, datos skaičiuoklė ir laiko juostos programa.
Kaip sukurti GUI kalendorių naudojant Python
Čia galite rasti GUI kalendoriaus šaltinio kodą naudodami Python GitHub saugykla.
Pradėkite importuodami Tkinter, Calendar ir DateTime modulį. Apibrėžkite funkciją, spausdinti kalendorių. Naudoti gauti () Metodas Spinbox (apibrėžtas vėliau kode), kad būtų galima išgauti vartotojo pasirinktą mėnesį ir metus. Perduokite šias reikšmes į kalendoriaus modulį, kad gautumėte suformatuotą tekstinį kalendorių, atspindintį nurodytus metus ir mėnesį. Šis tekstas yra paprastas vienatūris tinklelis, kurio dienos suskirstytos savaitėmis nuo pirmadienio.
Iš ekrano išvalykite visus esamus duomenis. 1.0 rodo lauko pradžią ir galas rodo lauko pabaigą. Galiausiai įdėkite anksčiau sukurtą kalendorių ir parodykite jį ekrane.
iš tkinteris importuoti *
importuoti kalendorius
iš data ir laikas importuoti data
defspausdinti kalendorių():
mėnuo = int (month_box.get())
metai = int (year_box.get())
output_calendar = kalendorius.mėnuo (metai, mėnuo)
calendar_field.delete(1.0, 'galas')
calendar_field.insert('galas', output_calendar)
Apibrėžkite funkciją, nustatyti iš naujo. Ištrinkite turinį ekrane ir nustatykite mėnesį bei metus į dabartį ir naudokite config () būdas parodyti jį ekrane.
defnustatyti iš naujo():
calendar_field.delete(1.0, 'galas')
month_var.set (current_month)
year_var.set (current_year)
month_box.config (textvariable=month_var)
year_box.config (textvariable=year_var)
Apibrėžkite funkciją, uždarykite, kad sunaikintumėte lango ekraną, ir išeikite iš programos.
defUždaryti():
guiWindow.destroy()
Inicijuokite Tkinter egzempliorių ir parodykite šakninį langą. Nustatykite pavadinimą, matmenis pikseliais ir išjunkite jo dydžio keitimą, palikdami parametrus 0.
jeigu __vardas__ == "__pagrindinis__":
guiWindow = Tk()
guiWindow.title("GUI kalendorius")
guiWindow.geometry(„500 x 550“)
guiWindow.resizable(0, 0)
Apibrėžkite keturis antraštės pavadinimo, mėnesio ir metų įrašo, ekrano ir mygtukų rėmelius. Jis atlieka konteinerio funkciją, nukreipdamas kitų valdiklių vietą. Jis sutvarko šių valdiklių išdėstymą ir užpildo stačiakampes ekrano dalis.
Suskirstykite rėmelius į blokus prieš įdėdami juos į langą naudodami paketas() metodas. Nustatykite išplėtimo reikšmę į true, kad valdiklis galėtų keisti dydį ir išplėsti turimą vietą. Nustatyti užpildyti atributas abiem, kad valdiklis išsiplėstų ir užimtų visą langą x ir y kryptimis.
header_frame = Rėmas (guiWindow)
entry_frame = Rėmas (guiWindow)
result_frame = Rėmas (guiWindow)
button_frame = Rėmas (guiWindow)
header_frame.pack (expand=Tiesa, užpildykite ="abu")
entry_frame.pack (išplėsti=Tiesa, užpildykite ="abu")
result_frame.pack (expand=Tiesa, užpildykite ="abu")
button_frame.pack (expand=Tiesa, užpildykite ="abu")
Nurodykite tris antraštės, mėnesio ir metų etiketes. Nustatykite pagrindinį langą, kuriame norite jį įdėti, tekstą, kuris bus rodomas, šrifto stilius ir šrifto spalvą. Supakuokite ir padėkite etiketes tinkamoje vietoje. Bendradarbis IntVar() su įvesties_rėmas nustatyti ir gauti sveikuosius duomenis.
header_label = Etiketė (header_frame, text="KAlendorius",
šriftas=("aralas", '45', "drąsus"), fg="#A020F0")header_label.pack (expand=Tiesa, užpildykite ="abu")
month_label = Etiketė (įvesties_rėmas, tekstas="Mėnuo:",
šriftas=("arialas", "20", "drąsus"), fg="#000000")year_label = Etiketė (įrašo_rėmas, tekstas="Metai:",
šriftas=("arialas", "20", "drąsus"), fg="#000000")
month_label.place (x=30, y=0)
year_label.place (x=275, y=0)
month_var = IntVar (įvesties_kadras)
year_var = IntVar (įvesties_kadras)
Gaukite dabartinį mėnesį, metus ir nustatykite jį į kintamąjį IntVar(). Naudokite „Spinbox“ valdiklį, kad nurodytumėte vartotojui verčių diapazoną. Nustatykite „Spinbox“ reikšmių diapazoną, plotį, dabartinę reikšmę ir šrifto stilius. Tinkamai padėkite dėžes.
dabartinis_mėnuo = data.šiandien().mėnuo
dabartiniai_metai = data.šiandien().metai
month_var.set (current_month)
year_var.set (current_year)month_box = Spinbox (įvesties_kadras, nuo_=1, iki=12, plotis="10",
textvariable=month_var, font=("aralas",'15'))year_box = Spinbox (įvesties_kadras, nuo_=0000, iki=3000, plotis="10",
textvariable=year_var, font=("aralas",'15'))
month_box.place (x=130, y=5)
metai_box.place (x=360, y=5)
Paskelbkite teksto lauką ir nustatykite jo pirminį langą, plotį, aukštį, šrifto stilių, 3D animacijos stilių ir kraštinės plotį. Sutvarkykite teksto valdiklį ir nurodykite tris mygtukus, kad būtų rodomas, nustatomas iš naujo ir uždaromas langas. Mygtukuose yra papildoma fono spalvos ypatybė ir komandos ypatybė.
Naudodami komandos ypatybę galite nustatyti funkciją, kurią ji turėtų vykdyti spustelėjus. Įdėkite mygtukus į vieną eilę, tarp jų palikdami pakankamai vietos.
calendar_field = Tekstas (rezultato_rėmas, plotis=20, aukštis =8,
šriftas=("kurjeris", "18"), reljefas=RIDGE, kraštinės plotis=2)calendar_field.pack()
display_button = Mygtukas (button_frame, text="DISPLAY", bg="#A020F0",
fg=„#E0FFFF“, command=printCalendar, font=("aralas", '15'))reset_button = Mygtukas (button_frame, text="ATSTATYTI", bg="#A020F0",
fg=„#E0FFFF“, komanda=nustatyti iš naujo, šriftas=("aralas",'15'))close_button = Mygtukas (button_frame, text="UŽDARYTI", bg="#A020F0",
fg=„#E0FFFF“, komanda=uždaryti, šriftas=("aralas",'15'))
display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
close_button.place (x=350, y=0)
The mainloop () funkcija liepia Python paleisti Tkinter įvykių kilpą ir klausytis įvykių (pvz., mygtukų paspaudimų), kol uždarysite langą.
guiWindow.mainloop()
Sudėkite visą kodą, kad pamatytumėte savo GUI kalendorių.
GUI kalendoriaus išvesties pavyzdys
Paleidus programą virš programos rodomas langas su dabartiniu mėnesiu ir data. Paspaudus mygtuką Reset rodomas tas pats ekranas.
Nustačius mėnesį iki 3 ir metus į 2000 m., programa rodo 2000 m. kovo kalendorių. Paspaudus mygtuką Uždaryti, programa sunaikina langą ir sustabdo jo vykdymą.
Imkitės kai kurių pradedančiųjų GUI projektų naudodami Python
Kurti GUI programas dar niekada nebuvo taip paprasta. Python Tkinter modulyje yra daug naudingų valdiklių, kuriuos galite visiškai pritaikyti naudodami labai mažai kodo. Be to, jūs gaunate prieigą prie išdėstymo tvarkytuvų, tokių kaip paketas, tinklelis ir vieta, kad galėtumėte išdėstyti elementus pagal savo pageidavimus.
Norėdami pradėti, galite sukurti spausdinimo bandomąjį žaidimą, spalvų paletę, valiutos keitiklį arba skaičiuotuvą. Šias programas smagu kurti ir jos lengvai lavins jūsų objektinio programavimo įgūdžius.