Nivå och poängvärde: | C 80 |
---|---|
Kort: | Vi skapar ett grafiskt användargränssnitt till ett program som kan skapa halvrolig, slumpmässig "skräptext". |
Vad vi lär oss: | Att skapa ett grafiskt gränssnitt. |
Frihet i implementationen: | Medel. Programmets allmänna struktur och själva problemet är noggrannt utstakade, men själva lösningen kan och bör man hitta på helt själv. |
Realism: | Hög. Att skapa ett grafiskt gränssnitt är en grundkunskap inom programmering. |
Utmaning: | Tämligen lätt. Med att grafikbibliotek är det inte särskilt svårt att skapa en enkel GUI (graphical user interface)m speciellt när man har en noggrann dokumentation med exempel. |
Arbetsmängd: | Medel. Fastän det inte är svårt att skapa en GUI, kräver det lite tid att sätta sig in i saken. De flesta torde dock klara sig på under tre timmar. |
RandomText-applikationen är ofärdig. I paketet src.randomtext
har det nog implementerats en klass som kan göra det här programmets huvuduppgift, nämligen att skapa en ny, slumpmässig text från given indata. Programmet har dock inget användargränssnitt. Er uppgift är att skapa en GUI åt RandomText-applikationen (Graphical User Interface, alltså grafiskt användargränssnitt). Detta görs enligt Epydoc-dokumentationen i filen generator_GUI.py.
Lämna in GUI:ens kod i Goblin.
window
-objektet har en metod geometry
, med vilken man bestämmer fönstrets storlek i pixlar. Fönstrets storlek ges som en sträng till metoden: först fönstrets bredd, sedan bokstaven x, sedan fönstrets höjd. Så t.ex. "100x50".
window
-objektet har också en metod title
, med vilken man bestämmer fönstrets titel. Titeln ges helt enkelt som en sträng, t.ex. w.title('Det här syns i fönstrets övre balk')
Entry
-objektet har en metod get
, som returnerar den strängen som för tillfället är skriven i textfältet. Ni behöver den här metoden för att ta reda på vad användaren har skrivit för indata till programmet (ett filnamn eller en URL).
Message
-objektet har en metod configure
, med vilken man kan ändra på egenskaper hos komponenten. Texten som dyker upp i komponenten kan man exempelvis ändra med optionen text
, t.ex. meddelande.configure(text='skräp på rutan')
Generator.py
. Den här konstanten bestämmer hur pass "konstig" den producerade texten är. Använder man ett mindre värde på konstanten snabbar det dessutom upp programmet avsevärt.
GUI:en ni skapar borde se ut ungefär så här. Storleken på komponenterna behöver inte vara exakt någon viss storlek, men fönstret bör innehålla rätt komponenter placerade på följande sätt bredvid och under varann.
Start-vyn:
Ett ögonblick efter att man klickat på Randomize!-knappen: