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
|
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 |
---|
#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
|
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());
}
|