KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Жасмин Бланшет - QT 4: программирование GUI на С++

Жасмин Бланшет - QT 4: программирование GUI на С++

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Жасмин Бланшет - QT 4: программирование GUI на С++". Жанр: Программирование издательство -, год -.
Перейти на страницу:

20 мая 1995 года Qt 0.90 был установлен на сайте sunsite.unc.edu. Спустя шесть дней о выпуске этой версии было объявлено на comp.os.linux.announce. Это была первая публичная версия Qt. Qt можно было использовать в разработках как Windows, так и Unix, причем программный интерфейс был одинаковый на обеих платформах. С первого дня предусматривались две лицензии применения Qt: коммерческая лицензия предназначалась для коммерческих разработок, и свободно распространяемая версия предназначалась для разработок с открытым исходным кодом. Контракт с «Metis» сохранил компанию «Trolltech» на плаву, хотя в течение долгих десяти месяцев не было продано ни одной коммерческой лицензии Qt.

В марте 1996 года Европейское управление космических исследований (European Space Agency) стало вторым заказчиком Qt, которое приобрело десять коммерческих лицензий. Верящие в удачу Айрик и Хаарвард приняли на работу еще одного разработчика. Qt 0.97 был выпущен в конце мая, и 24 сентября 1996 года вышла версия Qt 1.0. К концу этого года вышла версия Qt 1.1; восемь заказчиков — все из разных стран — приобрели в общей сложности 18 лицензий. В этом году был также основан Маттиасом Эттричем проект KDE.

Версия Qt 1.2 была выпущена в апреле 1997 года. Принятое Маттиасом Эттричем решение по применению Qt для построения KDE помогло Qt стать фактическим стандартом по разработке на С++ графического пользовательского интерфейса в системе Linux. Qt 1.3 была выпущена в сентябре 1997 года.

Маттиас присоединился к «Trolltech» в 1998 году, и последняя значимая версия Qt первого выпуска, 1.40, появилась в сентябре того же года. Qt 2.0 была выпущена в июне 1999 года. Qt 2 имела новую лицензию для открытого исходного кода — Q Public License (QPL), которая соответствовала Определению открытого исходного кода (Open Source Definition). В августе 1999 года Qt выиграла премию журнала «Linux World» за лучшую библиотеку или инструментальное средство. Примерно в это же время была образована компания «Trolltech Pty Ltd» (Австралия).

Компания «Trolltech» выпустила Qtopia Core (получившую затем название Qt/Embedded) в 2000 году. Она спроектирована для работы на устройствах с системой Embedded Linux и обеспечивает свою собственную оконную систему в качестве упрощенной замены X11. Как Qt/X11, так и Qtopia Соrе предлагаются теперь по широко распространенной общедоступной лицензии GNU — General Public License (GPL), a также на условиях коммерческих лицензий. К концу 2000 «Trolltech» учредила компанию «Trolltech Inc.» (США) и выпустила первую версию Qtopia — платформу для разработки приложений для мобильных телефонов и карманных компьютеров. Qtopia Соrе был удостоен премии журнала «Linux World» в категории «Лучшее решение для системы Embedded Linux» в 2001 и 2002 годах, a Qtopia Phone получила ту же премию в 2004 году.

Qt 3.0 была выпущена в 2001 году. Qt теперь работала в системах Windows, Mac OS X, Unix и Linux (для настольных и встроенных систем). Qt 3 содержала 42 новых класса, и объем ее программного кода превышал 500 000 строк. Qt 3 представляла собой важный шаг вперед по сравнению с Qt 2, которая, в частности, значительно улучшила поддержку локализации и кодировки Unicode, ввела совершенно новые виджеты по просмотру и редактированию текста и класс регулярных выражений, аналогичных применяемым языкам Perl. Qt 3 была удостоена премии «Software Development Times» в категории «Высокая продуктивность» в 2002 году.

Летом 2005 года была выпушена Qt 4.0. Имея около 500 классов и более 9000 функций, Qt 4 оказалась больше и богаче любой предыдущей версии; она была разбита на несколько библиотек, чтобы разработчики могли использовать только нужные им части Qt. Версия Qt 4 представляет собой большой шаг вперед по сравнению с предыдущими версиями; она содержит полностью новый набор эффективных и простых в применении классов—контейнеров, усовершенствованную функциональность архитектуры модель/представление, быстрый и гибкий фреймворк графики 2D и мощные классы для просмотра и редактирования текста в кодировке Unicode, не говоря уже о тысячах небольших улучшений по всему спектру классов Qt. Qt 4 является первой версией Qt, доступной на всех поддерживаемых платформах как для коммерческой разработки, так и для разработки с открытым исходным кодом.

Кроме того, в 2005 году компания «Trolltech» открыла свое представительство в Пекине для предоставления пользователям в Китае и во всем этом регионе услуг по продаже, обучению и технической поддержке компонента Qtopia.

Со дня образования компании «Trolltech» популярность Qt постоянно росла, и она продолжает расти в наши дни. Этот успех является отражением как качества Qt, так и того удовольствия, которое разработчик получает при ее использовании. За последнюю декаду Qt превратилась из «секретного» программного продукта, известного только избранной группе профессионалов, в продукт, которым пользуются по всему миру тысячи коммерческих заказчиков и десятки тысяч разработчиков приложений с открытым исходным кодом.

Часть I. Основные возможности средств разработки Qt

Глава 1. Первое знакомство

В данной главе показано на примере создания простого приложения с графическим интерфейсом пользователя (GUI — graphical user interface), как можно обычные средства С++ совместить с функциональными возможностями Qt. Здесь также рассматриваются две ключевые идеи Qt: сигналы и слоты (signals and slots) и компоновка графических элементов (layout). В главе 2 мы рассмотрим более подробно возможности Qt, а в главе 3 мы начнем разрабатывать более реалистичное приложение.

Если вы уже знакомы c Java или C#, но имеете лишь ограниченный опыт работы с С++, возможно, вы захотите начать с Приложения Б, в котором дается введение в С++.

«Здравствуй, Qt»

Давайте начнем с очень простой Qt—программы. Сначала мы разберем каждую строку этой программы, а затем покажем способы ее компиляции и выполнения.

01 #include <QApplication>

02 #include <QLabel>

03 int main(int argc, char *argv[])

04 {

05 QApplication app(argc, argv);

06 QLabel *label = new QLabel("Hello Qt!");

07 label->show();

08 return app.exec();

09 }

В строках 1 и 2 в программу включаются определения классов QApplication и QLabel. Для каждого Qt—класса имеется заголовочный файл с тем же именем (с учетом регистра), содержащий определение этого класса.

В строке 5 создается объект QApplication для управления всеми ресурсами приложения. Для конструктора QApplication необходимо указывать параметры argc и argv, поскольку Qt сама обрабатывает некоторые из аргументов командной строки.

В строке 7 создается «виджет» текстовая метка QLabel, который выводит на экран сообщение «Hello Qt!» (здравствуй, Qt). По терминологии Qt и Unix виджетом (widget) называется любой визуальный элемент графического интерфейса пользователя. Этот термин происходит от «window gadget» и соответствует элементу управления («control») и контейнеру («container») по терминологии Windows. Кнопки, меню, полосы прокрутки и фреймы являются примерами виджетов. Одни виджеты могут содержать в себе другие виджеты. Например, окно приложения обычно является виджетом, содержащим QMenuBar (панель меню), несколько QToolBar (панель инструментов), QStatusBar (строка состояния) и некоторые другие виджеты. Большинство приложений используют QMainWindow или QDialog в качестве окна приложения, однако Qt настолько гибка, что любой виджет может быть окном. В данном примере QLabel является окном приложения.

Строка 7 делает текстовую метку видимой. Виджеты всегда создаются сначала невидимыми, и поэтому до непосредственного вывода на экран вы можете настроить их и тем самым не допустить мерцания экрана.

Строка 8 обеспечивает передачу управления приложением Qt. В этом месте программа переходит в цикл обработки событий, т.е. в своего рода режим «простоя», ожидая со стороны пользователя таких действий, как щелчок мышки или нажатие клавиши на клавиатуре.

Для простоты мы не делаем вызов оператора delete для объекта QLabel в конце функции main(). Подобная утечка памяти в такой небольшой программе безвредна, поскольку после завершения программы эта память будет возвращена операционной системой.

Рис. 1.1. Вывод приветствия программы Hello в системе Linux

Теперь вы можете проверить работу этой программы на своей машине. Сначала необходимо установить Qt 4.1.1 (или более позднюю версию Qt 4); процесс установки рассмотрен в Приложении А. С этого момента мы будем предполагать, что вы корректно установили библиотеку Qt 4 и ее каталог bin занесен в переменную окружения PATH. (В системе Windows это делается автоматически программой установки Qt.) Вам также потребуется поместить файл hello.cpp с исходным кодом программы Hello в каталог hello. Вы можете набрать файл hello.cpp вручную или взять его с компакт-диска, который входит в состав книги; на компакт-диске этот исходный код находится в файле /examples/chap01/hello/hello.cpp.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*