(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 found
File found
Word not found
Word 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.