21
PYTHON – FÖRELÄSNING 3 IB910C - Multimediaprogrammering i Python Händelsehantering i grafiska gränssnitt byggda med Tkinter Peter Mozelius DSV

Python – FÖRELÄSNING 3

  • Upload
    ovidio

  • View
    59

  • Download
    1

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Python – FÖRELÄSNING 3

PYTHON – FÖRELÄSNING 3

IB910C - Multimediaprogrammering i Python

Händelsehantering i grafiska gränssnitt byggda

med Tkinter

Peter Mozelius DSV

Page 2: Python – FÖRELÄSNING 3

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

Page 3: Python – FÖRELÄSNING 3

Tkinter

Vi börjar med att titta på:

TkinterPILImageTk

Mycket för att Tkinter har blivit en de facto standard för Python

Multimediaprogrammering i Python

Page 4: Python – FÖRELÄSNING 3

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

Page 5: Python – FÖRELÄSNING 3

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

Page 6: Python – FÖRELÄSNING 3

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

Page 7: Python – FÖRELÄSNING 3

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

Page 8: Python – FÖRELÄSNING 3

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

Page 9: Python – FÖRELÄSNING 3

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

Page 10: Python – FÖRELÄSNING 3

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

Page 11: Python – FÖRELÄSNING 3

Paus 15 minuter

Multimediaprogrammering i Python

Page 12: Python – FÖRELÄSNING 3

F3_exempel2

Multimediaprogrammering i Python

Vi tar nu även en titt på koden:

(finns för nedladdning på kurshemsidan)

Page 13: Python – FÖRELÄSNING 3

F3_exempel2

Hur löser vi händelsehanteringen? Vi vill kunna

Radera och spara text Stänga ner fönstret

Multimediaprogrammering i Python

Page 14: Python – FÖRELÄSNING 3

F3_exempel2

Slutligen våra funktioner för att radera och spara text:

Multimediaprogrammering i Python

Page 15: Python – FÖRELÄSNING 3

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

Page 16: Python – FÖRELÄSNING 3

Python Imaging Library

Följ installationsprogrammets råd:

Multimediaprogrammering i Python

Page 17: Python – FÖRELÄSNING 3

F3_exempel3

Vi ska nu slutligen ta en titt på exempel3 som har följande grafiska gränssnitt:

Multimediaprogrammering i Python

Page 18: Python – FÖRELÄSNING 3

F3_exempel3

Att läsa in en bild med ImageTk:

Multimediaprogrammering i Python

Page 19: Python – FÖRELÄSNING 3

F3_exempel3

En passande main-funktion:

Innehållet i green.txt*Button.background: Green

Multimediaprogrammering i Python

Page 20: Python – FÖRELÄSNING 3

F3_exempel3

Fixa till grafiken:

Posta gärna lite fler tips om grafiska lösningar inne i Moodles diskussionsfora.

Multimediaprogrammering i Python

Page 21: Python – FÖRELÄSNING 3

Tack för idag!!

Multimediaprogrammering i Python