...
Alla
...
olevasta
...
esimerkistä
...
selviää,
...
miten
...
voidaan
...
tutkia
...
onko
...
tekstiruutuihin
...
syötetty
...
jotain
...
ja
...
validaattoreilla
...
voidaan
...
varmistaa
...
että
...
syöte
...
on
...
numeerinen
Code Block |
---|
} #include "dialog.h" #include "ui_dialog.h" #include <QMessageBox> #include <QDoubleValidator> Dialog::Dialog(QWidget *parent): QDialog(parent), ui(new Ui::Jakolaskin) { ui->setupUi(this); ui->pushButton->setEnabled(false); //asetetaan tekstikentille validaattorit ettei niihin voi kirjoitella mitä vain ui->lineEdit->setValidator(new QDoubleValidator(this)); ui->lineEdit_2->setValidator(new QDoubleValidator(this)); //liitetään napit laskentafunktioihin connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(onLaske())); //liitetään molempien tekstiruutujen textChanged signaalit onTextChanged //slotiin, joka on tehty itse connect(ui->lineEdit,SIGNAL(textChanged(const QString &)), this,SLOT(onTextChanged(const QString &))); connect(ui->lineEdit_2,SIGNAL(textChanged(const QString &)), this,SLOT(onTextChanged(const QString &))); } Dialog::~Dialog() { delete ui; } void Dialog::onLaske() { QMessageBox box; bool bOK1, bOK2; double value1 = ui->lineEdit->text().toDouble(&bOK1); double value2 = ui->lineEdit_2->text().toDouble(&bOK2); ui->lineEdit_3->setText(""); if(bOK1 && bOK2) { if(value2 != 0) { double result = value1 / value2; ui->lineEdit_3->setText(QString::number(result)); } else { box.setText("Et voi jakaa nollalla"); box.exec(); } } else { box.setText("Virheellinen syöte"); box.exec(); } } void Dialog::onTextChanged(const QString &) { //enabloidaan nappi, jos molemmat syötteet on annettu ui->pushButton->setEnabled(ui->lineEdit->text() != "" && ui->lineEdit_2->text()!= ""); } {code} |