(H) Ajastin¶
Tavoite:
Opin käyttämään QTimer-olioita ja timeout-signaaleja, joita
tarvitset seuraavan kierroksen GUI-projektissa
(jos toteutat lisäominaisuuksia).
Lisäksi harjoittelen taustavärin asettamista widgetille.
Ohjeita:
Hae koodipohja: templates/11/timer/ -> student/11/timer/.
Tehtävänä on toteuttaa Qt Designerilla alla olevan kuvan mukainen dialogi.
Pohjakoodissa on valmiina osoitin QTimer-olioon.
Verrattuna Painoindeksi-tehtävään tässä on vain yksi uusi käyttöliittymäkomponentti: LCD number. Lisäksi joudut etsimään Qt:n dokumentaatiosta, miten voit asettaa värejä käyttöliittymäkomponenteille. (Voit valita muitakin värejä kuin yllä olevassa kuvassa.)
Nappulat toimivat seuraavasti.
Start-nappula käynnistää ajastimen. Se aloittaa ajan laskemisen niistä minuuteista ja sekunneista, jotka näytöllä sillä hetkellä ovat. (Jos ajastin on jo käynnissä, ei tee mitään.)Stop-nappula pysäyttää ajastimen, jolloin näkyviin jää sen hetkiset minuutit ja sekunnit. (Jos ajastin on jo pysäytetty, ei tee mitään.)Reset-nappula nollaa ajastimen asettamalla sekä minuutit että sekunnit nolliksi.Close-nappula sulkee ikkunan.
Ohje automaattitestien läpäisemiseksi
Käytä seuraavia nimiä olioille: lcdNumberSec, lcdNumberMin,
startButton, stopButton, resetButton ja closeButton.
Samaan tapaan kuin Painoindeksi-tehtävässä, käytä signal & slot -mekanismia kytkemään nappuloille sopivat toiminnot.
Lisäksi tarvitset QTimer-olion, joka voi lähettää timeout-signaaleja
tietyin aikavälein.
Esimerkiksi jos aikaväliksi määritellään 1000 millisekuntia
(eli 1 sekunti), niin timeout-signaali lähetetään sekunnin välein.
Kytke timeout-signaali sitä käsittelevään slotiin ja kirjoita
sopiva käsittelykoodi.
Tämä kytkentä on pakko tehdä koodissa, sopiva paikka sille on
MainWindow-luokan rakentaja.
Vinkkejä tehtävän tekemiseen:
- Kannattaa taas aloittaa rakentamalla käyttöliittymä.
- LCD number -komponentilla on metodi
display, jota voit käyttää sekuntien ja minuuttien näyttämiseen. - Debug-tulosteita varten voit ottaa käyttöön kirjaston
QDebug. - Taustavärin asettamiseen löytyy keinoja Qt:n dokumentaatiosta.
- Alusta minuutit ja sekunnit nolliksi.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.
