Taso ja pistearvo: | C 80 |
---|---|
Lyhyesti: | Luodaan graafinen käyttöliittymä ohjelmaan, jolla voi tuottaa hauskahkoa sattumanvaraista "pupputekstiä". |
Mitä opitaan: | Graafisen käyttöliittymän laatimista. |
Toteuttamisen vapaus: | Keskitasoa. Ohjelman rakenteen isot linjat ja ratkaistava ongelma on ennalta määrätty tarkasti, mutta ongelman ratkaisutavan voi ja pitääkin päättää itse. |
Realistisuus: | Korkea. Graafisen käyttöliittymän laatiminen on sovellusohjelmoinnin perusasioita. |
Haastavuus: | Helpohko. Grafiikkakirjaston avulla tällaisen yksinkertaisen GUI:n laatiminen ei ole kovin vaikeaa, varsinkaan kun käytössä on seikkaperäinen dokumentaatio ja esimerkkejä. |
Työläys: | Keskitasoa. Vaikka GUI:n tekeminen ei ole kovin vaikeaa, se vaatii kuitenkin perehtymistä. Useimmat selvinnevät kuitenkin tästä tehtävästä alle kolmessa tunnissa. |
RandomText-sovellusohjelma on epätäydellinen. Pakkaukseen randomtext
on kyllä toteutettu luokka,
joka osaa hoitaa tämän höpöohjelman päätehtävän eli tuottaa annetusta syötteestä uudenlaista, sattumanvaraista tekstiä.
Ohjelmalta puuttuu kuitenkin kunnon käyttöliittymä. Tehtävänne on laatia RandomText-sovellukselle GUI eli graafinen käyttöliittymä
annetun Epydoc-dokumentaation mukaisesti tiedostoon generator_GUI.py.
Palauttakaa käyttöliittymän koodi Gobliniin.
window
-oliolla on metodi geometry
, jolla määrätään luotavan ikkunan koko pikseleinä. Ikkunan koko annetaan metodille merkkijonona, jossa on ikkunan leveys, x-kirjain, ikunan korkeus. Eli esim. '100x50'.
window
-oliolla on myös metodi title
, joka asettaa ikkunan otsikkotekstin. Metodille annetaan ikunan otsikko merkkijonona.Esim. ikkuna.title('Tämä näkyy yläpalkissa')
Entry
-oliolla on metodi get
, joka palauttaa sen merkkijonon, joka
parhaillaan on kirjoitettuna tekstikenttään. Tarvitsette tätä metodia selvittääksenne, mitä käyttäjä on kirjoittanut
syötteeksi ohjelmaan (tiedostonimen tai URL:in).
Message
-oliolla on metodi configure
, jonka avulla komponentin arvoja voi muuttaa. Komponenttiin ilmestyvän tekstin voi asettaa optiolla text. Esim. viestikentta.configure(text='puppua ruudulle')
Generator.py
määritellyn vakion arvoa. Tuon vakion arvon vaihtaminen vaikuttaa ohjelman tuottaman tekstin "omituisuuteen". Pienen arvon käyttö
myös nopeuttaa ohjelman toimintaa merkittävästi.
Laatimanne GUI:n pitäisi näyttää jotakuinkin tältä. Komponenttien täsmälliset koot pikseleissä eivät ole oleellisia, mutta ikkunassa pitää olla oikeantyyppiset komponentit asemoituina tähän tapaan vierekkäin ja allekkain.
Alkunäkymä:
Muutaman hetken päästä Randomize!-nappulan painalluksesta: