Введение в QT Framework (Hello, world)
Здравствуйте!
Это первая статья о Фреймворке Qt (произносится как «Кьют»). В ней мы обсудим, что такое Qt и почему он многим нравится, и напишем нашу первую программу.
Итак, начнем:
Что такое Qt?

Это кросс платформенный Фреймворк для разработки консольных и графических приложений. Для прикладных приложений поддерживаются платформы Windows, Linux, Mac и большинство Unix систем. Для разработки под мини-компьютеры поддерживаются встраиваемые Linux системы и Windows CE.
Я программирую только прикладные приложения (по крайней мере, пока) и буду рассказывать в основном об этом. Скачать Qt с открытым исходным кодом можно с www.trolltech.com.
На сегодняшний день
последней является Qt 4.5
beta распространяемая по
лицензии совместимой с GPL.
Последняя GPL версия это
4.4.3.
Почему Qt?
Лично я считаю Qt одной из самых удачных библиотек для С++. Часто программируя на Qt я думаю об устройстве ее классов и возникает ощущение, что я реализовал бы их так же. Это не к тому, какой я хороший кодер, а к тому, как понятно и удобно для программиста устроена Qt. Особенно она понравится тем, кто пришел к ней из MFC. При всем при этом Qt достаточно быстра (на мой взгляд, с версии 4.3.3) и кросс-платформенна, что в наше время является одним из решающих факторов, как сказал о ней Марк Саммерфильд (если я не ошибаюсь это он) «написал программу компилируй ее в любом месте». Так же немало важно то, что любой желающий ее изучить может совершенно бесплатно скачать Open Source версию на сайте троллей и кодить сколько угодно. Вместе с исходниками библиотеки вы получаете удобный мануал снабженный браузером.
Скачав дистрибутив для своей платформы, установите его.
На linux придется все компилировать. На windows можно просто инсталлировать, запускать командную строку из меню Qt, и начинать работать. На linux я пользуюсь KDevelop, на Windows я предпочитаю Eclipse. Надеюсь, что читатели сумеют самостоятельно инсталлировать библиотеку, ведь работа в linux немыслима без умения компилировать приложения.
Итак, следуя традициям, наша первая программа будет приветствовать мир.
#include <QtGui>
int main(int argc,char** argv)
{
QApplication app(argc,argv);
QLabel label(“Hello, world!”);
label.show();
return app.exec();
}
Теперь разберем по полочкам, что же мы тут наделали:
- В первой
строке мы подключаем файл QtGui
содержащий декларации классов QApplication
и QLabel. Вместо этого мы
могли бы подключить файлы QApplication
и QLabel. В Qt
есть такое правило: каждый класс объявлен
в отдельном файле, имя которого совпадает
с именем класса.
- Далее в функции main
мы создаем класс QApplication
он и осуществляет контроль и управление
приложением. В конструктор мы передаем
два аргумента: количество аргументов
командной строки и указатель на вектор
содержащий оные. Любая программа Qt
использующая графический интерфейс
должна создать один (и только один)
экземпляр этого класса. Это должно быть
сделано до использования операций,
связанных с интерфейсом.
- Потом мы создаем
метку, экземпляр класса QLablel
передавая ее конструктору текст, который
она и будет отображать.
Вообще я очень рекомендую
чаще заглядывать в QtAssistaint
(я его вообще не закрываю). По умолчанию
все классы пользовательского интерфейса
в Qt после создания невидимы,
по этому после создания метки мы вызываем
метод show() для ее отображения.
В данном случае label
представляет собой основной управляющий
элемент приложения, это значит, что
приложение завершиться, как только
будет закрыто окно элемента. Если
элементов будет несколько, приложение
закроется после того, как будет закрыто
окно последнего из них.
И на-конец запуск приложения осуществляется вызовом QApplication:: exec(), таким образом, мы запускаем цикл событий приложения. Он продолжается до тех пор, пока не будет закрыто последнее окно либо не будет вызван статический метод QApplication::exit(). По завершению приложения метод exec() вернет целое число – статус выхода.
Ну вот пожалуй и все, что касается helloWorld'а в следующих постах будут рассматриваться отдельные компоненты фреймворка, а так же планируется написание серии статей по созданию рабочего приложения с помощью этой библиотеки, быть может оно окажется полезным и для вас.
Комментарии
Поздравляю gnudimarik с первым постом! Думаю не плохо получилось.
Спасибо большое, пока прочитал только первую статью, но думаю остальные сократят мое общение с гуглом на несколько недель)))