Göm meny

Introuppgift 2

Syftet med denna introuppgift är att ni ska bekanta er med ramverket TkInter, hur gränssnitt skapas på ett objektorienterat sätt och hur man hanterar användarinteraktion på ett händelsebaserat sätt.

Gruppanmälan

Använd denna länk för att anmäla er grupp: Anmälan av pargrupp till Tema 2

Uppgifter och redovisning

För dessa övningsuppgifter ska ni använda en fil per uppgift. Den första uppgiften löser ni t.ex. i filen uppg1.py. All kod ska följa kodstandarderna PEP 8, samt PEP 257 och kontrolleras med programmen pep8 och pep257.

Vid redovisning kommer ni att få demonstrera ett urval av uppgifterna. Ni kommer också att få frågor om era lösningar.

Tips: Ta hjälp av exempelkoden från föreläsningen.

Referensdokument

Ni kommer behöva slå upp saker i referensdokumentation. Nedan hittar ni länkar till två alternativ.

Uppgift 1 - Ett fönster och en knapp

I den första uppgiften ska ni skapa ett fönster som innehåller en knapp. När man trycker på den knappen ska texten "Knappen funkar!" skrivas ut i terminalen.

Uppgift 2 - Layout

I denna uppgift ska ni skapa ett fönster och placera ut TkInter-widgets enligt nedanstående layoutskiss så gott ni kan, dvs den behöver inte vara exakt likadan. Ta fram två olika lösningar som använder olika kombinationer av geometri-hanterare. Ni behöver inte lägga till någon interaktivitet.

Skriv också ner det som är svårt att göra med de olika geometri-hanterarna som ni provar.

Tips! Kom ihåg att ni kan gruppera widgets genom att lägga dem i en frame och sedan lägga till det Frame-objektet till huvudfönstret.

layoutskiss

Geometri-hanterare (Geometry managers)

Det finns tre geometri-hanterare att välja mellan i TkInter. Syftet med geometri-hanterare (kallas ibland för layout-hanterare/layout managers i andra språk) är att hjälpa till och till viss mån automatisera hur och var GUI-komponenter placeras. Läs om dessa i mer detalj här:

Principen som används när man skapar ett GUI med TkInter är att man först skapar en widget och då kopplar ihop den med den komponent som är dess behållare. Sedan anropar den geometri-hanterar metod i widgeten som man vill använda och skickar då med de parametrar som ska tas hänsyn till när widgeten placeras ut.

Uppgift 3 - Option-meny

I denna uppgift ska ni skapa ett fönster med en label, en option-meny och en knapp. Option-menyn ska innehålla namnen på minst fem maträtter och när man trycker på knappen ska texten på labeln ändras till samma text som man valt i option-menyn.

Se optionmenu.py för exempelkod.

Uppgift 4 - Checkboxar, radioknappar och text

I denna uppgift ska ni skapa ett fönster som har samma layout som bilden nedan. När man trycker på knappen ska ett nytt fönster skapas som innehåller ett text-fönster. Text-fönstret ska innehålla alla valda alternativ från huvudfönstret, dvs texten från text-fältet, alla markerade checkboxar, den valda radioknappen (endast en radio-knapp ska kunna vara vald åt gången).

Checkboxar och radioknappar

Resultatfönster

Se checkbox.py, radio.py och text.py för exempelkod.


Sidansvarig: Jody Foo
Senast uppdaterad: 2017-03-13