Skolan för Datavetenskap och kommunikation. Programmeringsteknik. Föreläsning 16

Relevanta dokument
Idag: Centrerad utskrift. Granskning. DD1311 Programmeringsteknik med PBL. Granskning Felhantering GUI. Föreläsning 15.

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 15

Mer till P-uppgiften: Dokumentation. Nyheter. Algoritm för sökning. Mer hjälp. DD1311 Programmeringsteknik med PBL

Skolan för Datavetenskap och kommunikation PROGRAMMERINGSTEKNIK FÖRELÄSNING 18

Starta ett fönster... Hur håller tkinter reda på musklick? Olika sätt att organisera fönsterinnehåll. Och för att placera våra widgets

Föreläsning 5 Programmeringsteknik DD1310. Modulen doctest. Exempel. Doctest Dictionary Filhantering

Funktioner. Linda Mannila

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Mer grafik. Jan Erik Moström

Lab5 för prgmedcl04 Grafik

v. 42 Python HT17 En introduktion Oscar Bergqvist

PROGRAMMERINGSTEKNIK FÖRELÄSNING 5

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

PROGRAMMERINGSTEKNIK TIN212

v. 43 Python HT17 En introduktion Oscar Bergqvist

Datalogi för E Övning 3

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

DD1311 Programmeringsteknik för S1 Laborationer läsåret

Detaljbeskrivning av Player

Klasser och objekt, referenser Grundkurs i programmering med Python

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Föreläsning 3: Händelsestyrda program och användargränssnitt

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Övningar Dag 2 En första klass

Introduktionsmöte Innehåll

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

TDP002 - Imperativ programmering

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Grafiska användargränssnitt i Java

Språket Python - Del 2 Grundkurs i programmering med Python

Grafiska användargränssnitt i Java

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Föreläsning 4 Programmeringsteknik DD1310. Felhantering. Syntax. try och except är reserverade ord som används för hantering av exekverings fel.

Testning av program. Verklig modell för programutveckling

Objektorienterad Programmering (TDDC77)

Objektorienterad programmering Föreläsning 2

Malmö högskola 2007/2008 Teknik och samhälle

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

729G75 Programmering och algoritmiskt tänkande. Grafiska gränssnitt och händelsedriven programmering

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Objektorienterad Programkonstruktion. Föreläsning jan 2017

Laboration: Whitebox- och blackboxtesting

Klassen javax.swing.timer

Föreläsning 5-6 Innehåll

TDP005 Projekt: Objektorienterat system

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Windows Forms Winstrand Development

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Ordlistor, filhantering och ut på webben. Linda Mannila

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Sätt att skriva ut binärträd

Fortsättningskurs i programmering F 5. GUI händelsehantering - undantagshantering Hugo Quisbert AWT. Paket för hantering av grafik

Programutveckling för Tekniska Tillämpningar Arbetsblad 5

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Att skriva till och läsa från terminalfönstret

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

Grundläggande datalogi - Övning 1

Översikt Föreläsning 1. Trivicalc. Vad är trivicalc? En cell. Områden på skärmen. SMD168/SMD135 Fredrik Bengtsson

TDP007 Konstruktion av datorspråk Hemtentamen

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Planering av ett större program, del 2 - for och listor. Linda Mannila

Föreläsnings 9 - Exceptions, I/O

DD1314 Programmeringsteknik

Använda Python Laboration 1 GruDat, DD1344

EDAA01 Programmeringsteknik - fördjupningskurs

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

TDP002 - Imperativ programmering

Dagens program. Programmeringsteknik och Matlab. Vad är arv? Vi ärver från GregorianCalendar. Kan vi bygga vidare på existerande klasser?

Obligatorisk uppgift: Simulering av köer i ett trafiksystem

Grundkurs i programmering - intro

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

PLANERING MULTIMEDIAPROJEKTET FAMILJEN GURKA

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning 13 Datalogi 1 DA2001

Föreläsning 12. Föreläsning 12. Rörliga figurer Klassen Timer Undantag Något om applets. Rörliga appletsfigurer Klassen Timer Undantag

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11

Frivillig Java-swing-Graphics-lab Programmeringsteknik MN1 vt02

Obligatorisk uppgift: Simulering av köer i ett trafiksystem

Vilken version av Dreamweaver använder du?

Föreläsnings 11 - GUI, Händelsestyrda program, MVC

Att prova på en enkel Applet och att lära sig olika sätt att hämta data från tangentbordet. Du får även prova på att skapa din första riktiga klass.

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540) Ansvarig: Jan Skansholm, tel eller

Föreläsning 6 Programmeringsteknik och Matlab DD1312

Felhantering TDDD78, TDDE30, 729A

729G06 Programmering och logik. Grafiska gränssnitt och eventdriven programmering del 2

JAVA Mer om klasser och objektorientering

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Transkript:

Skolan för Datavetenskap och kommunikation Programmeringsteknik Föreläsning 16

Grafiskt användargränssnitt (GUI) Använd modulen tkinter, som har klasser för komponenter. Se "Referenser" på kursens webbsida: GUI-länkar Button Canvas Checkbutton Entry Frame Label Listbox Menu Menubutton Message Radiobutton Scale Scrollbar Text

Hur gör man? Hämtar alla klasser i modulen Tkinter. from tkinter import * roten = Tk() knapp = Button(roten, text="tryck") knapp.pack() roten.mainloop() Tk-konstruktorn - skapar rotfönstret. Knappen placeras. Button-konstruktorn - skapar en knapp. Startar en slinga som väntar på inmatning från användaren.

Komponenter Knappar och annat kallas komponenter och är objekt. Varje komponent har en konstruktor med många defaultparametrar. Anropa bara med det som behövs: knapp = Button(roten,text="Handla") Första parameter ska vara roten

Ändra attribut Attributen kan ändras ett i taget: knapp["text"] = "Klart" Med metoden config kan man ändra flera attribut åt gången: knapp.config(bg = "lightblue", height = 3, width = 9, font = ('times', 20, 'italic')) Här ändrar vi knappens färg, storlek, och textfont.

Anropa funktion med knapptryck! Ett attribut som alla komponenter har är command Där anger man vilken metod/funktion som ska anropas när komponenten används. Om vi skriver en funktion addera() som ska anropas när nån trycker på knapp så kan vi koppla ihop funktion med knapp så här: knapp["command"] = addera

Man kan också koppla ihop knappen med en funktion när den skapas: from tkinter import * def byttext(): knapp["text"] = "Aj!" roten = Tk() knapp = Button(roten, text = "Tryck inte", command = byttext) knapp.pack() roten.mainloop()

GUI-exempel Exemplen finns på KTH Social under "GUI-exempel"

Olika typer av fel Felavbrott (Exception) när programet körs Inget händer när man kör programmet Massor av text rinner över skärmen Programmet gör något annat än det man ville Programmet gör rätt för vissa indata, men inte för andra

Felavbrott Lär dig tolka felutskrifter! Traceback (most recent call last): File filmer.py", line 124, in <module> titta(listan) File filmer.py", line 102, in titta film.ny_visning(1) TypeError: ny_visning() takes exactly 1 argument (2 given)

Tolkning Sista raden förklarar felet! TypeError: ny_visning() takes exactly 1 argument (2 given) Raderna ovanför visar anropskedjan. Läs nerifrån och uppåt! Felet uppstod på rad 102, i funktionen titta som anropades på rad 124.

Kontrollutskrifter Använd kontrollutskrifter för att hittar var i programmet felet uppstår. En kontrullutskrift är en vanlig print-sats, till exempel: print "Klar med inläsningen" Eller stanna upp så här: raw_input("tryck Enter") Du kan också skriva ut variabelvärden för att se hur dom ändras under körning.

Mittiprick-metoden Anta att programmet hänger sig, men vi vet inte var i programmet det inträffar. 1. Lägg en kontrollutskrift i början och en i slutet. Blev det fel däremellan? 2. Lägg då in en kontrollutskrift mitt i. Om den kommer ut som den ska finns felet i andra halvan, annars i första. 3. Fortsätt tills du hittat felet!

Testning Skriv upp (i en textfil) hur du testar programmet. Missa inte specialfallen. Efter att du har fixat ett fel testa att programmet fortfarande fungerar för alla testfallen.

Hjälpmedel (överkurs) Är du van att använda en debugger? Titta på modulen pdb Vill du infoga automatisk testning i programmet? Titta på modulen doctest

På torsdag Felhantering (ingår ofta i C-uppgiften) Mer GUI