(H) Find-dialogi¶
Tavoite: Opin tekemään yksinkertaisen dialogin Qt Designerilla ja ymmärtämään Qt:n signals & slots -mekanismia.
Ohjeita:
Toteuta uusi projekti: student/11/find_dialog/.
Luo uusi projekti edellisten materiaaliosioiden ohjeiden mukaisesti.
Tehtävänä on toteuttaa Qt Designerilla alla olevan kuvan mukainen dialogi.
Etiketin (label) Find from file vieressä on lineEdit-komponentti,
johon annetaan sen tiedoston nimi, josta sanaa etsitään.
Vastaavasti etiketin Find what vieressä on lineEdit-komponentti,
johon kirjoitetaan etsittävä sana.
Kun Find-nappulaa painetaan, sanaa etsitään annetusta tiedostosta.
Etiketin Search status alapuolelta löytyy textBrowser-komponentti,
jonne voit tulostaa tiedon siitä, löytyikö kyseinen tiedosto.
Jos tiedosto löytyi, voit taas tulostaa tiedon siitä, löytyikö
etsittävä sana vai ei.
Ohjelma tulostaa täsmälleen yhden alla olevista teksteistä:
File not foundFile foundWord not foundWord found
Tuloste File not found tulostetaan siis silloin, jos annettua
tiedostoa ei löydy.
Jos tiedosto löytyy, mutta jos etsittävää sanaa ei annettu
(eli se on tyhjä tai nollan merkin pituinen), tulostetaan
File found.
Jos tiedosto löytyy ja jos etsittävä sana on jotakin muuta kuin
tyhjä, tulostetaan jompikumpi kahdesta viimeisestä vaihtoehdosta
sen mukaan, löytyikö tiedostosta vai ei.
Valintaruudussa Match case voit määritellä, onko isoilla ja pienillä
kirjaimilla merkitystä vai ei.
Tämäkin valinta vaikuttaa siis siihen, kumpi kahdesta viimeisestä
tulostusvaihtoehdosta tulostetaan.
Käyttäjän tekemä valintaa ei kannata tallettaa boolean-muuttujaan,
sillä QCheckBox-luokalla on funktio isChecked,
joka palauttaa tiedon valinnasta.
Nappulalla Close voit sulkea pääikkunan (MainWindow).
Ohje automaattitestien läpäisemiseksi
Käytä seuraavia objektinimiä lineEdit-widgeteille:
fileLineEdit ja keyLineEdit.
Käytä näille widgeteille editingFinished-signaaleja.
Käytä nappuloille nimiä:
findPushButton ja closePushButton.
Käytä lopuille widgeteille nimiä:
textBrowser ja matchCheckBox.
Vinkkejä tehtävän tekemiseen:
- Kannattaa taas aloittaa rakentamalla käyttöliittymä.
- Muutenkin voit tehdä tehtävän vastaavanlaisissa vaiheissa kuin Painoindeksi-tehtävän.
- Tiedoston avaamisen, sieltä lukemisen ja sulkemisen voit tehdä entiseen tapaan (graafiset käyttöliittymät eivät aiheuta tähän mitään eroa).
- Merkkijonon etsinnän voit tehdä haluamallasi tavalla, riittää
käyttää esim.
string-luokan metodiafind. - Muista, että oletuksena ohjelma käännetään
build-hakemistoon. Testaamista varten kannattaa siirtää syötetiedosto tähän samaan hakemistoon.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.
