160 likes | 343 Views
Python. Grafični uporabniški vmesniki. Grafični uporabniški vmesniki. Sodobni programi imajo grafične uporabniške vmesnike Izpisujemo v oknih, na gumbih, v oznakah Upravljamo s klikanjem z miško Podatke vnašamo v vnosna okna … Delo z okni, gumbi, dogodkovno programiranje …
E N D
Python Grafični uporabniški vmesniki
Grafični uporabniški vmesniki • Sodobni programi imajo grafične uporabniške vmesnike • Izpisujemo v oknih, na gumbih, v oznakah • Upravljamo s klikanjem z miško • Podatke vnašamo v vnosna okna … • Delo z okni, gumbi, dogodkovno programiranje … • Številne GUI knjižnice za Python • http://wiki.python.org/moin/GuiProgramming
tkinter • Zaenkrat smo spoznali le z oknom (glavnim elementom) in platnom • Poznamo pa še druge grafične objekte: • napise: Label • gumbe: Button • okvirje: Frame • Vnosna polja: Entry • …
Zgled importtkinter okno = tkinter.Tk() napis = tkinter.Label(okno, text = 'Dober dan!') napis.pack() napis2 = tkinter.Label(okno, text= 'ŠPIRI v vsako slovensko vas!') napis2.pack() okno.mainloop()
Zgled importtkinter okno = tkinter.Tk() napis = tkinter.Label(okno, text = 'Dober dan!', height=10, width=50) napis.pack() napis2 = tkinter.Label(okno, text= 'ŠPIRI v vsako slovensko vas!') napis2.pack() okno.mainloop()
Še malo šminke import tkinter okno = tkinter.Tk() napis = tkinter.Label(okno, text = 'Doberdan!', height=10, width=50,fg = 'red') napis2 = tkinter.Label(okno, text = 'ŠPIRI v vsakoslovenskovas!',font=("Helvetica", 16)) napis.pack() napis2.pack() okno.mainloop()
Ne pozabimo na pack! importtkinter okno = tkinter.Tk() napis = tkinter.Label(okno, text = 'Dober dan!', height=10, width=50) # napis.pack() napis2 = tkinter.Label(okno, text = 'ŠPIRI v vsako slovensko vas!') napis2.pack() okno.mainloop()
Kaj počne pack? • V tistem trenutku doda grafični objekt v nadrejeni vsebnik • grObjekt = tkinter.TipGrObjekta(imeVsebnika, … (lastnosti) ) • … • grObjekt.pack() • Edini vsebnik, ki ga trenutno poznamo, je glavno okno • Vrstni red pakiranja je pomemben
Vrstni red pakiranja • napis.pack() • napis2.pack() • napis2.pack() • napis.pack()
Drugačno pakiranje • objekt.pack(side='left') • Postavi objekt na levo • Ostale možnosti: • side = 'top' • side = 'bottom' • side = 'right'
Zgledi pakiranja import tkinter okno = tkinter.Tk() oz1 = tkinter.Label(okno, text = "A", width = 3, height = 3, font=('Arial',20)) oz2 = tkinter.Label(okno, text = "B", width = 3, height = 3, font=('Arial',20)) oz3 = tkinter.Label(okno, text = "C", width = 3, height = 3, font=('Arial',20)) oz4 = tkinter.Label(okno, text = "Č", width = 3, height = 3, font=('Arial',20)) oz5 = tkinter.Label(okno, text = "D", width = 3, height = 3, font=('Arial',20))
Primerjava oz1,2,3,4,5.pack(side='left') oz1,2,3,4,5.pack(side='top')
Primerjava oz1,2,3,4,5.pack(side='right') oz1,2,3,4,5.pack(side='bottom')
Primerjava oz1,2,.pack(side='left') oz3,4.pack(side='top') oz5.pack(side='left') oz1.pack(side=top') oz2,3.pack(side='right') oz4,5.pack(side='bottom')
Pakiranje - grid • Načeloma se veliko lažje stvari pakira z ukazom grid. • Tole bo kar primeren naslov • http://effbot.org/tkinterbook/grid.htm
Spremeniti napis importtkinter okno = tkinter.Tk() vsebinaNapisa = tkinter.StringVar() štejem = tkinter.Label(okno, textvariable= vsebinaNapisa, font=('Arial', 30), width=10, height=5) štejem.pack() vsebinaNapisa.set("ZDRAVO!") okno.mainloop()