# 3. Сборка примеров Qt

# 3.1. Шаг первый: Hello World!

В предыдущей главе мы создали проект под названием `MyWidget` - теперь, глядя на первую страницу учебника по библиотеке Qt, вы можете заметить, что первое приложение использует только функцию `main()`. Поэтому мы изменим только имеющуюся функцию `main()` нашего проекта для создания и запуска первого шага учебника.

Для доступа к функции `main()` выберите в просмотрщике классов ветку "Глобальное", которая содержит подветку "Функции", где перечислены функции, не являющиеся методами классов. Это приведет к открытию файла `main.cpp` в окне "Файлы C/C++" и курсор будет установлен на первой строчке функции `main()`.

## 3.1.1. Что изменять первым

Мы можем начать изменять исходный текст, чтобы привести его к виду из учебника по Qt, но можно поступить проще. Отметьте содержимое функции `main()` с помощью мышки или нажимая стрелку вниз одновременно удерживая Shift. Затем выберите пункт "Вырезать" из меню "Редактирование" или нажмите кнопку DEL для удаления отмеченного куска текста. Таким образом мы удалим содержимое функции и сможем начать создавать наше учебное приложение с нуля.

## 3.1.2. Ввод исходного текста примера

Теперь, для того чтобы ввести исходный текст из учебника, вы сначала можете внимательно его прочитать и постараться запомнить какая строка содержит какой текст. Затем, после прочтения в учебники описания каждой строки, вы можете использовать его в качестве пособия при написании собственного примера.

Для желающих пойти более простым путем: отметьте содержимое приведенной функции `main()` в просмотрщике документации и нажмите кнопку "Копировать" на панели инструментов. Также вы можете использовать контекстное меню или соответствующий пункт в меню "Редактирование". Это приведет к копированию отмеченного текста в буфер обмена, который, после переключения обратно в окно редактирования исходного текста, может быть выставлен с помощью кнопки или пунктов контекстного или основного меню "Вставить".

Наконец, вставьте следующие файлы заголовков перед функцией `main()`:

     #include <qapplication.h>
     #include <qpushbutton.h>

Вот и все ! Мы получили исходный текст вашего первого учебного приложения.

## 3.1.3. Сборка Hello World!

Для сборки вашего первого учебного приложения выберите пункт "Создать" в меню "Собрать" или нажмите соответствующую кнопку на панели инструментов. Также вы можете выбрать пункт "Исполнить", в результате чего произойдет запуск приложения после его успешной сборки.

Если сборка прервана из-за ошибки, будте уверены - это ошибка программиста, а не учебника ! Конечно печально начинать программирование под KDE/Qt с поисков ошибки, но таким образом вы сможете потренироваться в использовании KDevelop. Для того, чтобы найти ошибку, вы можете выбрать два пути: или, шелкнув на сообщении об ошибке в окне вывода, оказаться на той строчке, где эта ошибка произошла, или нажать клавишу F4; также вы можете использовать пункт "Следующая ошибка" меню "Вид".

## 3.1.4. Упражнения

Вы можете спросить - "Упражнения ? Да этот пример настолько прост, что мне не нужны никакие упражнения !", но будте уверены, все еще успеет усложниться. Это был простейший пример, но чем сложнее они будут становиться, тем больше придется думать, чтобы понять и следовать шагам учебника. Упражнения также помогут вам освоиться с KDevelop и его возможностями.

В качестве упражнения с первым учебным примером, попробуйте внести следующие изменения в приведенный исходный текст и посмотреть, как это повлияет на поведение приложения:

1. замените pushbutton на QLabel.

2. используйте `setText()` вместо непосредственного указания текста в конструкторе pushbutton.

3. используйте `QPushButton::resize ( const QSize & s )` вместо установки размеров с помощью непосредственного указания ширины и высоты. Сначала создатейте объект класса `QSize`, содержащий эти размеры.

4. поизменяйте размеры, чтобы разобраться какой параметр высота, а какой ширина.