Pull to refresh

Qt. Простая программа

И вот мой первый пост, надеюсь не последний.
Я, начинающий программист самоучка, так что, пожалуйста не судите строго.
Последнее время пытаюсь программировать на Qt (C++), но к сожалению, я не нашел литературу (ну может я «летал в облаках» когда читал данную литературу, поэтому и нечего не понял), которая помогла бы написать одну простую программу. После написания которой, как я полагал, я более-менее разберусь со «слотами» и «сигналами», и после чего смогу писать то что мне надо.
Ну все по порядку. Так называемая «простая программа» заключается в том, что надо ввести информацию (к примеру число), в вести в первый слот, а при нажатии кнопки это число должно отобразится в другом слоте.
Первая книга по которой я начал учится была «QT4 Программирование GUI на С++», авторы Жасмин Бланшет и Марк Саммерфилд. В данной книге приводится куча примеров, но нет почти никаких обобщённых разъяснений, в общем я нечего не понял и начал искать другой источник информации.
Вторая книга, которую я начал разбирать была «Шлее М. — Qt4.5. Профессиональное программирование на C++ ». Эта книга показалась мне намного лучше чем предыдущая, я с самого начала ее прочтения, узнал назначение основных библиотек Qt и много других интересных вещей, но я так и не понял как мне написать ту программу. В итоге я забросил и эту книгу и начал искать следующий источник информации.
Третья книга (ну книгой ее конечно сложно назвать, скорее всего то методичка), которую я нашел была «Самарев Р. Программирование с использованием библиотеки Qt».
В общем, пользуясь данными источниками информации, а также информацией полученной из сети интернет, я, все таки написал ту программу. И примерное последовательность ее написания приведено ниже.
Для начала я создал проект с базовым классом Qdialog. После чего сделал графическую оболочку примерно так как показано на рисунке снизу.

image

Далее сам код:

Заголовочный файл «first.h»

#ifndef FIRST_H
#define FIRST_H
#include "QDialog"
#include "ui_first.h"
class First : public QDialog, public Ui::First
{
Q_OBJECT
public:
First(QWidget *parent = 0);
double getLine(); // Получает число из lineEdit_1
void setLine ( double ); //Отображает число в lineEdit_2
//public slots:
void setQ(); // слот который выполняет функцию получение и
//отображения числа при нажатии кнопки
};
#endif


Файл где реализована основная программа «first.cpp»

#include "QtGui"
#include "first.h"
First::First(QWidget *parent) : QDialog(parent)
{
setupUi(this);
connect(OkButton, SIGNAL(clicked()), this, SLOT(setQ()));
//данная строка генерирует сигнал
//clicked(), при нажатии кнопки,
//который в свою очередь
//запускает слот setQ()

connect(pushButton, SIGNAL(clicked()), this, SLOT(close()));
//эта строка так же генерирует
//сигнал clicked(), который
//запускает слот завершения
//программы close()
}
double First::getLine()
{
double result;
QString str = lineEdit_1->text();
result = str.toDouble(); // как я понял эта строчка преобразует
//строку в число
return result;
}
void First::setLine(double num)
{
QString str;
str.setNum( num, 'g', 25); // а эта наоборот число в строку
lineEdit_2->setText( str );
}
void First::setQ()
{
double num = getLine();
setLine(num);
}


Ну и файл запуска приложения «main.cpp»

#include "QApplication"
#include "first.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
First w;
w.show();
return a.exec();
}

Данный файл в таком виде был создан приложением и остался неизменным.
Я конечно понимаю что для большинства это бесполезная информация, но может кому-то это принесет пользу.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.