...
Esimerkki
...
Qt
...
validatorin
...
käytöstä.
...
Validaattorilla
...
voidaan
...
tarkastaa
...
syöttöruuttuun
...
hyväksyttävät
...
arvot.
...
Alla
...
esimerkki,
...
jossa
...
hyväksyttäviä
...
ovat
...
ekassa
...
kokonaisluvut
...
väliltä
...
100...999
...
ja
...
toisessa
...
reaaliluvut
...
väliltä
...
0...100.
...
Idea
...
on,
...
että
...
tiedon
...
kuittauspainike
...
enabloidaan,
...
kun
...
arvo
...
on
...
hyväksyttävällä
...
alueella.
...
Luokan
...
esittelyssä
...
esitellään
...
validaattorit:
Code Block |
---|
} class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); QValidator *kokonaislukuvalidaattori; QValidator *reaalilukuvalidaattori; {code} |
Luokan
...
muodostimeen
...
tehdään
...
validaattorit
...
ja
...
yhdistetään
...
ne
...
syttöruutuihin
Code Block |
---|
} Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //määrätään hyväksyttävä alue kokonaislukuvalidaattori = new QIntValidator(100, 999, this); reaalilukuvalidaattori =new QDoubleValidator(0.000,100.000,3,this); //yhditetään validaattorit syöttöruuihin ( EditLine ) ui->kokonaisluku->setValidator(kokonaislukuvalidaattori); ui->reaaliluku->setValidator(reaalilukuvalidaattori); //laitetaan napit false=epätosi tilaan ui->lueKokonaisluku->setEnabled(false); ui->lueReaaliluku->setEnabled(false); } void Dialog::on_lueKokonaisluku_clicked() { //kokonaislukuvalidaattori->validate(); QString Apu=ui->kokonaisluku->text(); ui->tulos->setText(Apu); } void Dialog::on_lueReaaliluku_clicked() { QString Apu=ui->reaaliluku->text(); ui->tulos->setText(Apu); } {code} |
Tehdään
...
vielä
...
painonapeille
...
validointi
...
eli
...
mahdollistetaan
...
nappien
...
painaminen,
...
kun
...
luku
...
on
...
hyväksyttävissä.
Code Block |
---|
} void Dialog::on_kokonaisluku_textChanged(QString apu) { //lueKokonaisluku nappi enabloidaan eli mahdollistetaan painaminen kun kokonaisluku tekstiruuttu on hyväksyttävissä ui->lueKokonaisluku->setEnabled(ui->kokonaisluku->hasAcceptableInput()); } void Dialog::on_reaaliluku_textChanged(QString apu ) { ui->lueReaaliluku->setEnabled(ui->reaaliluku->hasAcceptableInput()); } {code} |