Введение в 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.
Коментарии к статьеНет комментариев
|