Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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.

Image RemovedImage Added

Dialogin ohsikkotiedosto näyttää tältä

Code Block
#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
namespace Ui {
    class Dialog;
}

class Dialog : public QDialog, public Ui::Dialogi
{
       Q_OBJECT
public:
    explicit   DialogiDialog(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 <QtGui>"dialog.h"
#include "dialogiui_dialog.h"

DialogiDialog::DialogiDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    setupUi    ui->setupUi(this);     
    // QRegExp rajoittaa annettavien merkkien tyyppiä ja määrää
    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");     ui->pushButton->setEnabled(false);
     //hyväksytään A-Z tai a-z alussa, seuraavaksi 1-9 numerot ja sitten 0-9 nollasta kahteen numeroa
    lineEdit->setValidator(new QRegExpValidator(regExp, this));// yhditetään validaattori tekstiruutuun 
    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
}

void Dialogi::on_lineEdit_textChanged()
{
    okButton->setEnabled(lineEdit->hasAcceptableInput());
}

Tai tältä

Code Block

#include <QtGui>
#include "dialogi.h"

Dialogi::Dialogi(QWidget *parent): QDialog(parent)
{
    setupUi(this);
    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
    QRegExp regExp     QRegExp hyvaksytytMerkit("[A-Za-z][1-9][0-9]{0,21}");
     // yhditetään validaattori eli oikeellisuudeen tarkastaja  lineEdittekstiruutuun
     ui->lineEdit->setValidator(new QRegExpValidator(regExphyvaksytytMerkit, this));
    connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
    connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()))}

Dialog::~Dialog()
{
    delete ui;
}

void DialogiDialog::on_lineEditpushButton_textChangedclicked()
{
          buttonBox->button(QDialogButtonBox::Ok)->setEnabled(lineEdit->hasAcceptableInput()ui->lineEdit_2->setText(apu);
}

Wizardin luoma pääohjelma

Code Block
#include <QApplication>
#include "dialogi.h"

int main(int argc, char *argv[]void Dialog::on_lineEdit_textChanged(const QString &arg1)
{
    QApplication app(argc, argv)    apu=arg1;
    // jos syote Dialogion *dialog = new Dialogi;
    dialog->show();
    return app.exec(hyvaksyttavissa, "enabloidaan" painonappi
    ui->pushButton->setEnabled(ui->lineEdit->hasAcceptableInput());
}