User manual
68
Do sedaj je bil vse čisti Python, sedaj pa se nadaljuje s Tk in njegovimi posebnostmi.
root = Tk()
Tkinter uporablja tako imenovane gradnike. Pri tem gre za samostojne zaslonske elemente –
v večini primerov so to pogovorna polja – ki vsebujejo različne elemente. Vsak program
potrebuje gradnik root, iz katerega poteka priklic vseh ostalih objektov. Ta gradnik root se
vedno imenuje Tk(), samodejno generira okno in tudi inicializira knjižnico Tkinter.
root.title("LED")
Objekti v Tkinter nudijo različne metode za različne namene. Metoda title() v gradniku
nastavi naslov okna, v tem primeru torej zapiše besedo LED v naslovno vrstico novega okna.
Vsak gradnik lahko vsebuje več objektov, ki so posamezno definirani. Tkinter pri tem pozna
različne tipe objektov, pri katerih vsak omogoča različne parametre, ki opisujejo lastnosti
objekta. Parametri so navedeni v oklepaju za tipom objekta in so ločeni z vejicami. Ker lahko
ta seznam postane zelo dolg, ponavadi vsak parameter zapišemo v lastno vrstico, tako da so
vsi parametri poravnani eden pod drugim. Za razliko od zamikov pri zankah in poizvedbah v
Python pa ti zamiki objektov iz knjižnice Tkinter niso obvezni.
Label(root, text="Prosimo, da za vklop in izklop LED kliknete
gumb").pack()
Objekti tipa Label so čista besedila v gradniku. Program jih lahko spreminja, vendar ne
nudijo interakcije z uporabnikom. Prvi parameter v vsakem objektu Tkinter je ime
nadrejenega gradnika, ponavadi okna, v katerem se nahaja posamezni objekt. V našem
primeru je to edino okno v programu, in sicer gradnik root.
Parameter text vsebuje besedilo, ki naj bo prikazano na Label. Na koncu definicije objekta
se doda tako imenovani packer kot metoda pack(). Ta packer vgradi objekt v pogovorno
okno in generira geometrijo gradnika.
Button(root, text="Vklop", command=LedEin).pack(side=LEFT)
Objekti tipa Button so gumbi, na katere uporabnik klikne, da sproži določeno dejanje. Tudi
tukaj parameter text vsebuje besedilo, ki naj bo prikazano na Button.
Parameter command vsebuje funkcijo, ki jo prikliče gumb, ko kliknete nanj. Pri tem ni možno
posredovati nobenih parametrov, ime funkcije pa mora biti navedeno brez oklepajev. Ta
gumb prikliče funkcijo LedEin(, ki vklopi LED.
Metoda .pack() lahko tudi vsebuje parametre, ki določajo, kako naj bo razporejen objekt
znotraj pogovornega polja. side=LEFT pomeni, da bo gumb poravnan levo in ne na sredino.
Button(root, text="Izklop", command=LedAus).pack(side=LEFT)
Po isti shemi se ustvari še drugi gumb, ki prek funkcije LedAus() ponovno izklopi LED.
Sedaj so definirane vse funkcije in objekti, tako da se lahko začne dejanski program.
root.mainloop()
Glavni program je sestavljen samo iz ene vrstice. Začne glavno zanko mainloop(), in sicer
gre za metodo gradnika root. Ta programska zanka čaka na to, da uporabnik aktivira enega
izmed gradnikov in s tem sproži dejanje.