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

Dialogin teko Qt-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 tuottaa edellisen esimerkin dailogin alle aikayksikön. Wizardilla voi luoda projektitiedoston, dialogin rungon ja pääohjelman automaattisesti.

Code Block
TEMPLATE      = app
HEADERS       = gotocelldialogdialogi.h
SOURCES       = gotocelldialogdialogi.cpp \
                main.cpp
FORMS         = gotocelldialogdialogi.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.tiedostoa, huomaat sieltä löytyvän samojen asioiden kuin edellisessä tehtävässä tehtiin ohjelmallisesti.

Image Added

Dialogin ohsikkotiedosto näyttää tältä

Code Block
#ifndef GOTOCELLDIALOGDIALOG_H
#define GOTOCELLDIALOGDIALOG_H

#include <QDialog>#include "ui_gotocelldialog.h"<QDialog>

namespace Ui {
    class Dialog;
}

class GoToCellDialogDialog : public QDialog, public Ui::GoToCellDialog
{
       Q_OBJECT
public:
    explicit   GoToCellDialogDialog(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



sdsad

 // DIALOG_H

Ja luokan toteutus tältä

Code Block

#include "dialog.h"
Code Block

p, li { white-space: pre-wrap; }

#include <QtGui>

#include "gotocelldialogui_dialog.h"


GoToCellDialogDialog::GoToCellDialogDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
       setupUi(this);
    QRegExp regExpui->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,21}");
     //rajoitetaan sallittujayhditetään kirjaimiavalidaattori jaeli numeroita
oikeellisuudeen tarkastaja   lineEdittekstiruutuun
     ui->lineEdit->setValidator(new QRegExpValidator(regExphyvaksytytMerkit, this));
    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()))}

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

void GoToCellDialogDialog::on_lineEditpushButton_textChangedclicked()
{
          okButton->setEnabled(lineEdit->hasAcceptableInput()ui->lineEdit_2->setText(apu);
}

ad

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

int main(int argc, char *argv[])

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

...