You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

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;
    ui->pushButton->setEnabled(false);
    ui->pushButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}
  • No labels
You must log in to comment.