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

Введение в QT


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

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

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

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

Выпуск №38

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

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

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

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

Результаты опроса
Как давно вы занимаетесь программированием?

1До 1 года
12% ( 5 )
 
2От 1 до 2 лет
12% ( 5 )
 
3От 2 до 5 лет
24% ( 10 )
 
4Свыше 5 лет
40% ( 17 )
 
5Я не программист
12% ( 5 )
 

Всего голосов: 42
Последний голос отдан: Вторник - 25 Сентября 2007 - 15:41:14


Постоянная ссылка на статью (с картинками): 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.


Если вам нравиться эта рассылка рекомендуйте ее своим друзьям. Подписаться можно по адресу http://subscribe.ru/catalog/comp.soft.prog.devdoc

Copyright (C) Kudinov Alexander, 2006-2007

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


В избранное