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

Статьи по Visual C++

  Все выпуски  

Введение в QT


Домашняя страница www.devdoc.ru

DevDoc - это новые статьи по программированию каждую неделю.

Заходи и читай!

Домашняя страница Письмо автору Архив рассылки Публикация статьи

Выпуск №62

Здравствуйте уважаемые подписчики, сегодня в номере:

  • Результаты опроса
  • Статья "Введение в QT"

Результаты опроса

Опросы постоянно проводятся на сайте www.devdoc.ru.

Результаты опроса
Для какой платформы вы пишите программы

1Windows
63% ( 275 )
 
2Linux
30% ( 129 )
 
3Mac
3% ( 12 )
 
4Мобильные устройства
5% ( 21 )
 

Всего голосов: 437
Последний голос отдан: Понедельник - 19 Апреля 2010 - 02:48:07


Постоянная ссылка на статью (с картинками): http://www.devdoc.ru/index.php/content/view/qt_intro.htm

Автор: Кудинов Александр
Последняя модификация: 2010-04-17 02:45:06

Введение в QT

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

Библиотека QT (http://qt.nokia.com/) существует уже много лет. Она получила известность после того, как на ней начали писать популярную оболочку KDE под Линкус. На сегодняшний день это очень развитая библиотека классов для работы с окнами, графикой и контейнерами данных.

Так получилось, что я прочитал документацию к этой библиотеке задолго до того, как начал ее использовать. В первую очередь меня поразило количество классов и свой собственный механизм обработки оконных (и не только) событий. В то время большинство моих проектов были построены на MFC и я просто не хотел терять время на детальное изучение новой библиотеки. Я считал, что смогу быстро написать еще пару программ за тот же период.

И вот в один прекрасный момент мне понадобилось написать кросс - платформенное приложение для Windows/Mac/Linux. Я рассматривал разные библиотеки для C++ и даже (о боже!) стал подумывать, чтобы все сделать на Java. Сначала мой выбор пал на wxWidgets. В действительности это очень простая библиотека, но уже после написания каркаса приложения я понял, что мороки с ней будет больше чем с MFC. Так собственно и произошло.

И тут случилось одно знаменательное событие. Библиотека QT стала доступна с LGPL лицензией. Т.е. стало возможно использовать в коммерческих проектах. Это предопределило мой окончательный выбор.

Вопреки моим ожиданиям, поверхностное изучение QT не заняло много времени. Уже на следующий день после скачивания, я уже начал писать коммерческий продукт.

Перед началом работы, я очень рекомендую посмотреть программу qtdemo.exe, которая входит в состав библиотеки. Это демонстрация основных элементов управления и графических возможностей. Кстати сама программа тоже написана на QT.

Уже через пару дней работы, я понял, что больше никогда в жизни я не вернусь к MFC. Ключевым преимуществом QT является то, что она писалась программистами и для программистов. Все методы продуманы до мелочей, и фактически можно реализовать все новомодные фишки без многодневного копания в документации и вопросов на форуме "Как мне сделать цветные ячейки в таблицах?" или "Как убрать мерцание при изменении размера окна?". Разработчики библиотеки уже давно ответили на все эти вопросы и реализовали это в коде.

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

Наконец я добрался до того, ради чего и был выполнен переход. После 8 месяцев разработки программы под Windows я скомпилировал код под Маком и Линуксом. Ждать 8 месяцев перед компиляцией было конечно не лучшим решением, но мне надо было в первую очередь получить версию для Windows, а все остальное - очень хороший бонус. На саму компиляцию ушло немало времени, т.к. из-за небольшой разницы в компиляторах пришлось немного править код. Зато потом программа запустилась сразу без танцев с бубном.

Графическая подсистема стоит отдельного упоминания. Библиотека использует свои окна вместо системных окон. Рисование выполняется с двойной буферизацией и многие элементы управления библиотека рисует самостоятельно, старательно подражая стандартным стилям Windows, Mac и Linux.

Я в этой статье намерено не касался конкретных технических моментов. Следующий раз я расскажу, как установить библиотеку на каждую из платформ и как интегрировать средства разработки с MS Visual Studio.

Copyright (C) Kudinov Alexander, 2006-2010

Перепечатка и использование материалов запрещена без писменного разрешения автора.


В избранное