Python * FÖRELÄSNING 1
Download
Report
Transcript Python * FÖRELÄSNING 1
Händelsehantering i grafiska
gränssnitt byggda med
Tkinter
Peter Mozelius
DSV
IB910C - Multimediaprogrammering i Python
Det finns flera möjligheter att klä
på Python med ett GUI
PyQT
PyGTK
Jython
MPY
wxPython
Tkinter
Multimediaprogrammering i Python
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
Mycket lätt att skapa egna fönster:
Mycket lätt att skapa egna etiketter:
funster = Tkinter.Tk();
etikett = Tkinter.Label();
Mycket lätt att skapa egna knappar:
knapp = Tkinter.Button();
Multimediaprogrammering i Python
Vi sätter nu ihop ett första fönsterprogram med
Ett fönster
En etikett
En knapp
Multimediaprogrammering i Python
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
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
En annan grafisk komponent i Tkinter som kan
hantera text är Text
Lägg in text med funktionen
Ta bort text med funktionen
insert()
delete()
Hämta text med funtionen
get()
Multimediaprogrammering i Python
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
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
Multimediaprogrammering i Python
Vi tar nu även en titt på koden:
(finns för nedladdning på kurshemsidan)
Multimediaprogrammering i Python
Hur löser vi händelsehanteringen?
Vi vill kunna
Radera och spara text
Stänga ner fönstret
Multimediaprogrammering i Python
Slutligen våra funktioner för att radera och
spara text:
Multimediaprogrammering i Python
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
Följ installationsprogrammets råd:
Multimediaprogrammering i Python
Vi ska nu slutligen ta en titt på exempel3 som
har följande grafiska gränssnitt:
Multimediaprogrammering i Python
Att läsa in en bild med ImageTk:
Multimediaprogrammering i Python
En passande main-funktion:
Innehållet i green.txt
*Button.background: Green
Multimediaprogrammering i Python
Fixa till grafiken:
Posta gärna lite fler tips om grafiska lösningar
inne i Moodles diskussionsfora.
Multimediaprogrammering i Python
Multimediaprogrammering i Python