Kalenterin rakentaminen on loistava tapa oppia luomaan GUI-sovelluksia Pythonin Tkinter-moduulilla. Tämän sovelluksen avulla voit hallita ja suunnitella tapahtumia etukäteen.
Jatkamalla sitä, voit laajentaa sovellusta seuraamaan tulevia kokouksia ja asettaa muistutuksia. Voit jopa ottaa käyttöön yhteistyön muiden käyttäjien kalentereiden kanssa ajoitusristiriitojen välttämiseksi.
Kaikki alkaa GUI-kalenterisovelluksen perusrungosta.
Kalenteri-, Tkinter- ja DateTime-moduulit
GUI-kalenterin rakentamiseen käytät kalenteria, Tkinteriä ja DateTime-moduulia. The Kalenteri moduuli tulee Pythonin mukana, ja sen avulla voit suorittaa päivämäärään, kuukauteen ja kalenteriin liittyviä toimintoja.
Tkinterin avulla voit luoda työpöytäsovelluksia. Se tarjoaa erilaisia widgetejä, hyödyllisiä kirjastoja, canvas-objekteja ja HTML/XML/PDF-jäsentimiä. GUI-sovelluksen rakentamiseksi sinun tarvitsee vain:
- Tuo kirjasto.
- Luo ikkuna.
- Lisää widgetit kyseiseen ikkunaan.
- Kutsu päätapahtumasilmukkaa suorittaaksesi toimintoja käyttäjän vuorovaikutukseen perustuen.
Asenna Tkinter järjestelmään avaamalla pääte ja suorittamalla:
pip asennus tkinter
DateTime-moduuli on toinen sisäänrakennettu. Se tarjoaa useita luokkia, jotka voivat käsitellä päivämääriä, kellonaikoja ja aikavälejä. Tämän moduulin avulla voit rakentaa tapahtumaaikataulun, herätyskello, päivämäärälaskin ja aikavyöhykesovellus.
GUI-kalenterin rakentaminen Pythonilla
Löydät GUI-kalenterin lähdekoodin Pythonilla tästä GitHub-arkisto.
Aloita tuomalla Tkinter-, Calendar- ja DateTime-moduuli. Määritä funktio, tulosta kalenteri. Käytä saada() Spinboxin menetelmä (määritetty myöhemmin koodissa) poimimaan käyttäjän valitseman kuukauden ja vuoden. Välitä nämä arvot kalenterimoduuliin saadaksesi muotoillun tekstikalenterin, joka edustaa määritettyä vuotta ja kuukautta. Tämä teksti edustaa yksinkertaista yksitilaruudukkoa, jossa päivät on järjestetty viikkoihin maanantaista alkaen.
Poista kaikki olemassa olevat tiedot näytöstä. 1.0 osoittaa kentän alkua ja loppu osoittaa kentän loppua. Lisää lopuksi aiemmin luotu kalenteri ja näytä se näytöllä.
alkaen tkinter tuonti *
tuonti kalenteri
alkaen treffiaika tuonti Päivämäärä
deftulosta kalenteri():
kuukausi = int (month_box.get())
vuosi = int (year_box.get())
output_calendar = kalenteri.kuukausi (vuosi, kuukausi)
calendar_field.delete(1.0, 'loppu')
calendar_field.insert('loppu', output_calendar)
Määritä funktio, nollaa. Poista näytön sisältö ja aseta kuukausi ja vuosi nykyisyyteen ja käytä config() tapa näyttää se näytöllä.
defnollaa():
calendar_field.delete(1.0, 'loppu')
month_var.set (nykyinen_kuukausi)
year_var.set (nykyinen_vuosi)
month_box.config (tekstimuuttuja=kuukauden_muuttuja)
year_box.config (tekstimuuttuja=vuosimuuttuja)
Määritä funktio, sulje tuhotaksesi ikkunan näytön ja poistu ohjelmasta.
defkiinni():
guiWindow.destroy()
Alusta Tkinter-instanssi ja näytä juuriikkuna. Aseta otsikko, mitat pikseleinä ja poista sen koon muuttaminen käytöstä pitämällä parametrit 0:na.
jos __nimi__ == "__main__":
guiWindow = Tk()
guiWindow.title("GUI-kalenteri")
guiWindow.geometry("500x550")
guiWindow.resizable(0, 0)
Määritä neljä kehystä otsikon otsikolle, kuukauden ja vuoden merkinnälle, näytölle ja painikkeille. Se suorittaa kontin tehtävää ohjaten muiden widgetien sijoittamista. Se järjestää asettelun ja täydentää näitä widgetejä käyttämällä näytön suorakaiteen muotoisia osia.
Järjestä kehykset lohkoiksi ennen kuin asetat ne gui-ikkunaan käyttämällä pakkaus() menetelmä. Aseta laajennuksen arvoksi tosi, jotta widget voi muuttaa kokoa ja laajentaa sen käytettävissä olevaa tilaa. Aseta täyttää attribuutti molemmille, jotta widget laajenee ja kattaa koko ikkunan x- ja y-suunnassa.
header_frame = Kehys (guiWindow)
entry_frame = Kehys (guiWindow)
result_frame = Kehys (guiWindow)
button_frame = Kehys (guiWindow)
header_frame.pack (expand=Totta, täytä ="molemmat")
entry_frame.pack (laajenna=Totta, täytä ="molemmat")
result_frame.pack (expand=Totta, täytä ="molemmat")
button_frame.pack (expand=Totta, täytä ="molemmat")
Määritä kolme otsikkoa, kuukausi ja vuosi. Aseta pääikkuna, johon haluat sijoittaa sen, teksti, jonka se näyttää, kirjasintyylit ja fontin väri. Pakkaa ja aseta tarrat sopivaan paikkaan. Kumppani IntVar() kanssa entry_frame asettaa ja vastaanottaa kokonaislukutietoja.
header_label = Otsikko (header_frame, text="KALENTERI",
font=("arial", '45', 'lihavoitu'), fg="#A020F0")header_label.pack (laajenna=Totta, täytä ="molemmat")
month_label = Tunniste (merkintäkehys, teksti="Kuukausi:",
font=("arial", "20", "lihavoitu"), fg="#000000")year_label = Tunniste (merkintäkehys, teksti="Vuosi:",
font=("arial", "20", "lihavoitu"), fg="#000000")
month_label.place (x=30, y=0)
year_label.place (x=275, y=0)
month_var = IntVar (merkintäkehys)
year_var = IntVar (merkintäkehys)
Hanki nykyinen kuukausi, vuosi ja aseta se IntVar()-muuttujaan. Käytä Spinbox-widgetiä määrittääksesi käyttäjälle arvoalueen. Aseta Spinboxin sisältämä arvoalue, leveys, sen nykyinen arvo ja kirjasintyylit. Sijoita laatikot oikein.
nykyinen_kuukausi = päivämäärä.tänään().kuukausi
nykyinen_vuosi = päivämäärä.tänään().vuosi
month_var.set (nykyinen_kuukausi)
year_var.set (nykyinen_vuosi)month_box = Spinbox (entry_frame, from_=1, to=12, leveys="10",
textvariable=month_var, font=("arial",'15'))year_box = Spinbox (merkintäkehys, from_=0000, to=3000, leveys="10",
textvariable=year_var, font=("arial",'15'))
kuukausi_laatikko.paikka (x=130, y=5)
vuosi_laatikko.paikka (x=360, y=5)
Määritä tekstikenttä ja aseta sen pääikkuna, leveys, korkeus, kirjasintyyli, 3D-animaatiotyyli ja reunuksen leveys. Järjestä tekstiwidget ja määritä kolme painiketta ikkunan näyttämiseksi, nollaamiseksi ja sulkemiseksi. Painikkeet sisältävät ylimääräisen taustaväriominaisuuden ja komentoominaisuuden.
Komentoominaisuuden avulla voit määrittää toiminnon, joka sen tulee suorittaa napsautuksen jälkeen. Aseta painikkeet yhdelle riville siten, että niiden väliin jää riittävästi tilaa.
calendar_field = Teksti (tuloskehys, leveys=20, korkeus =8,
font=("kuriiri", "18"), relief=RIDGE, borderwidth=2)calendar_field.pack()
display_button = Painike (button_frame, text="NÄYTTÖ", bg="#A020F0",
fg="#E0FFFF", command=printCalendar, font=("arial", '15'))reset_button = Painike (button_frame, text="RESET", bg="#A020F0",
fg="#E0FFFF", komento=reset, font=("arial",'15'))close_button = Painike (button_frame, text="KIINNI", bg="#A020F0",
fg="#E0FFFF", komento=sulje, font=("arial",'15'))
display_button.place (x=55, y=0)
reset_button.place (x=210, y=0)
sulje_painike.paikka (x=350, y=0)
The mainloop() toiminto käskee Pythonia suorittamaan Tkinterin tapahtumasilmukan ja kuuntelemaan tapahtumia (kuten painikkeen painalluksia), kunnes suljet ikkunan.
guiWindow.mainloop()
Yhdistä koko koodi nähdäksesi GUI-kalenterisi toiminnassa.
GUI-kalenterin esimerkkitulostus
Ohjelmaa suoritettaessa yläpuolella ohjelma näyttää ikkunan, jossa on nykyinen kuukausi ja päivämäärä. Nollauspainike näyttää saman näytön, kun sitä napsautetaan.
Kun kuukaudeksi asetetaan 3 ja vuodeksi 2000, ohjelma näyttää kalenterin maaliskuulle 2000. Sulje-painiketta painettaessa ohjelma tuhoaa ikkunan ja pysäyttää sen suorittamisen.
Suorita joitain aloittelijan GUI-projekteja Pythonilla
GUI-sovellusten rakentaminen ei ole koskaan ollut näin helppoa. Pythonin Tkinter-moduuli tarjoaa monia hyödyllisiä widgetejä, joita voit mukauttaa täysin pienellä koodilla. Tämän lisäksi saat käyttöösi asetteluohjaimia, kuten pakkauksen, ruudukon ja paikan elementtien sijoittamiseksi toiveidesi mukaan.
Voit aloittaa kirjoittamalla kirjoitustestipelin, väripaletin, valuuttamuuntimen tai laskimen. Näitä sovelluksia on hauska rakentaa ja ne kehittävät olio-ohjelmointitaitojasi helposti.