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

Compare with Current View Page History

« Previous Version 25 Current »

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>

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ä

#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());
}
  • No labels
You must log in to comment.