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.
TEMPLATE = app HEADERS = dialogi.h SOURCES = dialogi.cpp \ main.cpp FORMS = dialogi.ui
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ä
#ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include "ui_dialogi.h" //luokka on tehty perimällä se QDialog ja käyttöliittymä luokista, kyseessä on siis moniperintä class Dialogi : public QDialog, public Ui::Dialogi { Q_OBJECT public: Dialogi(QWidget *parent = 0); private slots: void on_lineEdit_textChanged(); }; #endif
Ja luokan toteutus tältä
#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,2}"); // yhditetään validaattori 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()); }