Esimerkki Qt validatorin käytöstä.
Validaattorilla voidaan 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
Luokan esittelyssä esitellään validaattorit:
class Dialog : public QDialog { Q_OBJECT public: Dialog(QWidget *parent = 0); ~Dialog(); QValidator *kokonaislukuvalidaattori; QValidator *reaalilukuvalidaattori;
Luokan muodostimeen tehdään validaattorit ja yhdistetään ne syttöruutuihin
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); }
Tehdään vielä painonapeille validointi eli mahdollistetaan nappien painaminen kun luku on hyväksyttävissä.
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()); }