230 likes | 412 Views
Python – FÖRELÄSNING 3. Händelsehantering i grafiska gränssnitt byggda med Tkinter. Peter Mozelius DSV. Python – en orm med flera skinn. Det finns flera möjligheter att klä på Python med ett GUI PyQT PyGTK Jython MPY wxPython Tkinter. Tkinter. Vi börjar med att titta på: Tkinter
E N D
Python – FÖRELÄSNING 3 Händelsehantering i grafiska gränssnitt byggda med Tkinter Peter Mozelius DSV IB910C - Multimediaprogrammering i Python
Python – en orm med flera skinn • Det finns flera möjligheter att klä på Python med ett GUI • PyQT • PyGTK • Jython • MPY • wxPython • Tkinter Multimediaprogrammering i Python
Tkinter • Vi börjar med att titta på: • Tkinter • PIL • ImageTk • Mycket för att Tkinter har blivit en de facto standard för Python Multimediaprogrammering i Python
Fönster och etiketter i Tkinter • Mycket lätt att skapa egna fönster: • funster = Tkinter.Tk(); • Mycket lätt att skapa egna etiketter: • etikett = Tkinter.Label(); • Mycket lätt att skapa egna knappar: • knapp = Tkinter.Button(); Multimediaprogrammering i Python
Ett första litet fönsterprogram • Vi sätter nu ihop ett första fönsterprogram med • Ett fönster • En etikett • En knapp Multimediaprogrammering i Python
F3_exempel1 import Tkinter; ruta = Tkinter.Tk(); halsning = Tkinter.Label(ruta, text='Jag är en Tkinter.Label'); halsning.pack(); knapp = Tkinter.Button(ruta, text='Hej, jag är en knapp', bg='blue', fg='white'); knapp.pack(fill=Tkinter.X); Multimediaprogrammering i Python
F3_exempel1 • Hm.. Varför fungerar inte koden på den förra bilden. Vad har vi glömt? Tkinter.mainloop(); • Visar huvudfönstret i en loop som kan ta emot och hantera händelser Multimediaprogrammering i Python
Tkinter.Text • En annan grafisk komponent i Tkinter som kan hantera text är Text • Lägg in text med funktionen • insert() • Ta bort text med funktionen • delete() • Hämta text med funtionen • get() Multimediaprogrammering i Python
Att spara text till fil • Vi talade i förra föreläsningen om persistens • Så här kan vi spara ner information mellan programkörningar i Python Multimediaprogrammering i Python
Händelsehantering • Så här kan vi koppla funktionen spara() från den föregående bilden till en knapp: • Vi tar nu en titt på F3_exempel 2 Multimediaprogrammering i Python
Paus 15 minuter Multimediaprogrammering i Python
F3_exempel2 • Vi tar nu även en titt på koden: • (finns för nedladdning på kurshemsidan) Multimediaprogrammering i Python
F3_exempel2 • Hur löser vi händelsehanteringen? • Vi vill kunna • Radera och spara text • Stänga ner fönstret Multimediaprogrammering i Python
F3_exempel2 • Slutligen våra funktioner för att radera och spara text: Multimediaprogrammering i Python
Bilder med ImageTk • För att kunna använda ImageTk och dess funktioner så behöver vi först hämta med och installera PIL (Python Imaging Library) • Finns för nedladdning på: http://www.pythonware.com/products/pil/ • The PIL handbook: http://www.pythonware.com/library/pil/handbook/ Multimediaprogrammering i Python
Python Imaging Library • Följ installationsprogrammets råd: Multimediaprogrammering i Python
F3_exempel3 • Vi ska nu slutligen ta en titt på exempel3 som har följande grafiska gränssnitt: Multimediaprogrammering i Python
F3_exempel3 • Att läsa in en bild med ImageTk: Multimediaprogrammering i Python
F3_exempel3 • En passande main-funktion: • Innehållet i green.txt *Button.background: Green Multimediaprogrammering i Python
F3_exempel3 • Fixa till grafiken: • Posta gärna lite fler tips om grafiska lösningar inne i Moodles diskussionsfora. Multimediaprogrammering i Python
Tack för idag!! Multimediaprogrammering i Python