Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

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:

Code Block
 // Hyväksy kokonaisluvut väliltä 100...999,
 class Dialog : public QDialog {
    Q_OBJECT
public:
    Dialog(QWidget *parent = 0);
    ~Dialog();
    QValidator *kokonaislukuvalidaattori = new QIntValidator(100, 999, ;
    QValidator *reaalilukuvalidaattori;

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);
    //hyväksy double-tyypin reaaliluku väliltä 0...100 ja kolme desimaalia
 QValidator *määrätään hyväksyttävä alue
    kokonaislukuvalidaattori = new QIntValidator(100, 999, this);
    reaalilukuvalidaattori =new QDoubleValidator(0.000,100.000,3,this);
    //sidoyhditetään validaattorivalidaattorit editLinesyöttöruuihin objektiin( nimeltäänEditLine kokonaisluku)
    ui->kokonaisluku->setValidator(kokonaislukuvalidaattori);
    ui->reaaliluku->setValidator(reaalilukuvalidaattori);
 //sido validaattori editLine objektiin nimeltään reaaliluku
 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());
}