Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование под Linux #7 (28-02-2002)


Служба Рассылок Subscribe.Ru

Здравствуйте дорогие подписчики рассылки "Программирование под Linux" !!!
 ....----==== http://linux.firststeps.ru/ ====----....


Наконец-то я приладил второй монитор к должному месту. Теперь мой стол
похож на витрину компьютерного магазина (или стол киношного хакера ? :).
Зато появилась возможность лазить в двух системах одновременно. Windows
для проигрывания фильмов, а Linux для повышения квалификации :)
Раньше поиграться с Linux'ом можно было только через telnet, зато сейчас
появилась возможность запустить KDE и начать рассмотрение, волнующего
большую часть аудитории, вопроса о создании GUI приложений на Qt/KDE
(или KDE/Qt ? кто главнее ? Ответ: "главнее XLib" %)

Присылайте свои мысли... (такая фраза сойдет ?)
Дубль 2: АУ, ЛЮДИ, ГДе Вы ?!
Дубль 3: Мда...
Дубль 4: Х-ррр, Х-ррр...



Что такое Qt ?
=====================

Qt - это кросс-платформенная библиотека C++ классов для создания
графических пользовательских интерфейсов (GUI) от фирмы TrollTech.
Эта библиотека полностью объектно-ориентированная, что обеспечивает
легкое расширение возможностей и создание новых компонентов. Она
поддерживает огромнейшее количество платформ, таких как Windows
95/98/NT/2000, Linux, Sun Solaris, HP-UX, Digital Unix, IBM AIX,
SGI IRIX и многие другие. С момента первого появления коммерческой
версии Qt в 1996 году появилось несколько сотен известных по всему
миру приложений. Самой известной разработкой на базе Qt является десктоп
менеджер для X Windows называющийся, как уже многие догадались, KDE.

Существует две версии библиотеки Qt: бесплатная и платная. Бесплатная
версия называемая Qt Free Edition предназначается только для Unix/X11 и
разработки программ с открытым исходным текстом. Для разработки коммерческих
программ предназначается версия Qt Professional Edition.

Для библиотеки создания GUI объектно-ориентированный язык является
единственно пригодным средством, а стандартная объектная модель C++
обеспечивает эффективную и быструю разработку программ, наращивание
неограниченных возможностей и быструю модернизацию. Естественно из-за
этого в качестве базового языка для библиотеки выбран C++. Но в дополнение
к возможностям самого языка в библиотеке Qt добавлены несколько хороших
возможностей:

  * мощный механизм коммуникации между объектами с помощью
    сигналов и слотов
  * механизм создания свойств объектов, которые не поддерживает
    компилятор C++
  * поддержку событий и фильтров событий
  * перевод строк для поддержки интернационализации
  * поддержку внутренних таймеров, которые позволяют интегрировать
    многие задачи для событийных GUI
  * иерархические деревья объектов, являющихся своего рода
    генеалогическими деревьями: "прадедушка - дедушка - папаша - сынок",
    предназначенное для организации внутреннего взаимодействия в
    "натуральном" виде
  * "охраняемые" указатели, которые автоматически устанавливаются в
    NULL при удалении объекта, на который ведет ссылка

Все эти возможности реализованы в виде специальных классов C++. Появление
новых современных требований к пользовательским интерфейсам влечет за
собой и появление новых нестандартных механизмов, которые сам язык
программирования обеспечить не способен, а лишь после создания
специализированных классов.

Скачать библиотеку Qt можно с сайта производителя по адресу
http://www.trolltech.com/developer/download/qt-x11.html





Первое приложение
=======================

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

В общем, хватит прелюдий. Давайте создадим первую программу. Любые
приложения на 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. И после запуска появилось то, что требовалось:

[!!! скриншот можно посмотреть на сайте !!!]

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


Количество подписчиков: 644

Выпуск подготовил: Кузин Андрей (dron@mjk.msk.ru)

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное