Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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:

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

Luokan muodostimeen tehdään validaattorit ja yhdistetään ne syttöruutuihin

Code Block
= new QIntValidator(100, 999, this);
 //hyväksy double-tyypin reaaliluku väliltä 0...100 ja kolme desimaalia
 QValidator *reaalilukuvalidaattori =new QDoubleValidator(0,100,3,this);
 //sido validaattori editLine objektiin nimeltään kokonaisluku
 ui->kokonaisluku->setValidator(kokonaislukuvalidaattori);
 //sido validaattori editLine objektiin nimeltään reaaliluku
 ui->reaaliluku->setValidator(reaalilukuvalidaattori);

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öruuihin ( EditLine )
    ui->kokonaisluku->setValidator(kokonaislukuvalidaattori);
    ui->reaaliluku->setValidator(reaalilukuvalidaattori);
    //laitetaan napit false tilaan
    ui->lueKokonaisluku->setEnabled(false);
    ui->lueReaaliluku->setEnabled(false);
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::changeEvent(QEvent *e)
{
    QDialog::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

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)
{
    ui->lueKokonaisluku->setEnabled(ui->kokonaisluku->hasAcceptableInput());
}

void Dialog::on_reaaliluku_textChanged(QString apu )
{
    ui->lueReaaliluku->setEnabled(ui->reaaliluku->hasAcceptableInput());
}