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