Esimerkki Qt validatorin käytöstä.
Validaattorilla voidaan tarkastaa syöttöruuttuun hyväksyttävät arvot alla . 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:
...
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 syttöruuihinsyö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); } |
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()); } |