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 |
---|
Wiki Markup |
Dialogin teko Qt-Creatorin wizardilla ja graafisella editorilla tuottaa edellisen esimerkin dailogin alle aikayksikön. Wizardilla voi luoda projektitiedoston, dialogin rungon ja pääohjelman automaattisesti. {code} TEMPLATE = app HEADERS = gotocelldialogdialogi.h SOURCES = gotocelldialogdialogi.cpp \ main.cpp FORMS = gotocelldialogdialogi.ui {code} Dialogiin pitää siirtää valikosta napit, vaakasuorat |
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" venytettäisiin. [Automaattisesti generoitu xml tiedosto dialogista|../display/koneautomaatio/Automaattisesti+generoitu+xml+tiedosto+dialogista], jos tutkit tätä tiedostoa, huomaat sieltä löytyvän samojen asioiden kuin edellisessä tehtävässä tehtiin ohjelmallisesti.#include <QApplication> #include <QDialog> #include "ui_gotocelldialogdialog.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); Ui::GoToCellDialog ui; QDialog *dialog = new QDialog; ui.setupUi(dialog); dialog->show(); return app.exec(); } Labels parameters h2. LabelsDialog::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()); } |