...
Tähän
...
esimerkkiin
...
on
...
lisätty
...
Dialogille
...
oma
...
luokka
...
sekä
...
säännöllisten
...
lauseiden
...
käsittelijä.
...
Ohjelma
...
on
...
tuotettu
...
Creatorin
...
wizardilla
...
ja
...
graafisella
...
editorilla.
Code Block |
---|
} TEMPLATE = app HEADERS = dialogi.h SOURCES = dialogi.cpp \ main.cpp FORMS = dialogi.ui {code} |
Dialogiin
...
pitää
...
siirtää
...
valikosta
...
napit,
...
vaakasuorat
...
layoutit(punaiset
...
suorakaiteet),
...
ja
...
"spacer"(sininen
...
nauha).
...
Layoutien
...
ja
...
spacerin
...
avulla
...
dilogi
...
pysyy
...
saman
...
muotoisena
...
vaikka
...
sitä
...
venytettäisiin.
Dialogin ohsikkotiedosto näyttää tältä
Code Block |
---|
!regularexp.png|border=1! Dialogin ohsikkotiedosto näyttää tältä {code} #ifndef DIALOG_H #define DIALOG_H #include <QDialog> namespace Ui { class Dialog; } class Dialog : public QDialog { Q_OBJECT public: explicit Dialog(QWidget *parent = 0); ~Dialog(); QString apu; private slots: void on_pushButton_clicked(); void on_lineEdit_textChanged(const QString &arg1);//tämä funktio ajetaan aina läpi tekstin muuttuessa lineEdit ruudussa private: Ui::Dialog *ui; }; #endif // DIALOG_H {code} |
Ja
...
luokan
...
toteutus
...
tältä
Code Block |
---|
} #include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); ui->pushButton->setEnabled(false); //hyväksytään A-Z tai a-z alussa, seuraavaksi 1-9 numerot ja sitten 0-9 nollasta kahteen numeroa QRegExp hyvaksytytMerkit("[A-Za-z][1-9][0-9]{0,1}"); // yhditetään validaattori eli oikeellisuudeen tarkastaja tekstiruutuun ui->lineEdit->setValidator(new QRegExpValidator(hyvaksytytMerkit, this)); } Dialog::~Dialog() { delete ui; } void Dialog::on_pushButton_clicked() { ui->lineEdit_2->setText(apu); } void Dialog::on_lineEdit_textChanged(const QString &arg1) { apu=arg1; // jos syote on hyvaksyttavissa, "enabloidaan" painonappi ui->pushButton->setEnabled(ui->lineEdit->hasAcceptableInput()); } {code} |