Шаг 2 - Первое приложение

Для того, чтобы создать первую программу надо уже ознакомиться с большинством возможностей библиотеки, по крайней мере, с ее базовыми структурами и классами, но у меня принцип изучения новых языков (библиотек и т.п.) немного другой. Зачем читать книгу из нескольких сотен страниц, если создание программы требуется уже сейчас. Более разумно прочитать первый десяток страниц и создать первое работающее приложение, а затем уже постепенно вгрызаться внутрь описания других возможностей, причем не всех подряд, а только тех, которые реально нужны в данный момент. Со временем Вам потребуются все возможности изучаемого объекта, и само собой, постепенно изучение завершится победным концом.

В общем, хватит прелюдий. Давайте создадим первую программу. Любые приложения на Qt требуют подключения заголовочного файла qapplication.h с определением класса QApplication, который управляет выполнением и установками GUI приложения. Для того, чтобы создать примитивный интерфейс добавим к окну приложения кнопку. Для этого следует подключить описание соответствующего класса QPushButton в файле qpushbutton.h.

Пишем код в файл app1.cpp:

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

int main(int argc, char **argv)
{
    QApplication app1(argc, argv);

    QPushButton button1("linux.firststeps.ru!",0);
    button1.resize(300,30);

    app1.setMainWidget(&button1);
    button1.show();
    return app1.exec();
}

Для компиляции этой программы требуется указать каталоги, в которых gcc может найти заголовочные файлы для X11 и Qt с помощью ключа -I. А также каталоги с библиотеками. При установке библиотеки Qt создается специальная переменная среды QTDIR, указывающая базовый каталог библиотеки. Узнать его можно с помощью команды:

dron:~# echo $QTDIR
/usr/lib/qt
dron:~#

У Вас это может быть другой каталог, но смысл от этого не меняется. Мы будем применять эту переменную для компиляции.

dron:~# gcc app1.cpp -o app1 -I/usr/X11R6/include -I$QTDIR/include 
  -L/usr/X11R6/lib -L$QTDIR/lib -lqt

По идее все должно скомпилироваться. По крайней мере, у меня образовался файл app1. И после запуска появилось то, что требовалось:

gif/1_1.gif (4106 b)

По строкам разбирать эту программу думаю нет смысла, однако основные моменты все-таки надо обозначить. Объект QApplication может быть в программе только один и он самый главный. Далее, чтобы приложение знало, что отображать внутри формы требуется назначить главный ей, так называемый, Widget функцией setMainWidget(). А отображаем мы внутри него кнопку button1. Позже мы более детально разберемся со всеми этими классами, а пока мы научились создавать и компилировать простые приложения на Qt.


Предыдущий Шаг | Оглавление
Автор Кузин Андрей - 28-02-2002