Обзор среды разработки Qt Creator
Программное обеспечение
Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Постоянная ссылка: http://www.nixp.ru/articles/59.html
Ничто не предвещало, что я быстро и без сожаления перейду на новую интегрированную среду разработки Qt Creator со старого доброго KDevelop, в котором писал программы много лет.
Примечание: Статья была впервые опубликована в электронном издании «Open Source» (выпуск №037 от 31.12.2008). Ее размещение на nixp.ru производится в соответствии с разрешением со стороны редакции и автора материала.
Предисловие
Ничто не предвещало, что я быстро и без сожаления перейду на новую интегрированную среду разработки Qt Creator со старого доброго KDevelop, в котором писал программы много лет. Qt Creator предназначена для разработки на Qt и выпущена корпорацией Nokia, недавно поглотившей Trolltech, в качестве так называемого «technology preview» под версией 0.9. Пусть вас не смущает это словосочетание (technology preview), перевести которое я не решаюсь, а писать русскую кальку не хочу. Продукт вполне годен для ежедневного использования в работе. Свои впечатления о нем я и поведаю в этом обзоре.
Общие сведения
Linux-версия Qt Creator размером около 20 мегабайт доступна на trolltech.com/developer/qt-creator. Именно оттуда я и скачал эту IDE, установив поначалу только ради интереса. Массовая версия Qt Creator распространяется как бинарный файл-установщик. Его можно поставить без прав суперпользователя в локальный пользовательский каталог. Весь Qt Creator устанавливается в один каталог, куда автоматически копируется и статическая версия Qt 4.5, необходимая для функционирования программы. Другая установленная в системе версия Qt при этом не страдает — более того, именно она и будет использоваться для сборки проектов, а вовсе не эта встроенная сборка Qt 4.5, как можно было бы предположить. Qt Creator для Windows занимает гораздо больший объем — порядка 200 мегабайт. Это вызвано тем, что в дистрибутив включена и полная версия Qt 4.4.3, и MinGW. Таким образом, нет смысла качать Qt для Windows отдельно, если вы будете работать в Qt Creator, а вот Linux-пользователям помимо установленной Qt 4.x понадобятся и соответствующие devel-пакеты. Кроме «стабильных» версий Qt Creator на FTP-сервере проекта можно найти и ежедневные бинарные сборки — есть шанс, что ошибки «стабильных» релизов в них исправлены, однако добавлены и новые.
Текущая лицензия на бинарные сборки Qt Creator — отнюдь не GPL, хотя позже обещают распространять и под совместимой с GPL. А вот исходники Qt Creator, доступные через Git, распространяются под GPL 2 и 3 с традиционным для Trolltech (а теперь — уже Nokia) добавлением. Кстати, мне не удалось собрать Qt Creator из исходников. Вероятно, всё же Qt версии не ниже 4.5 для Qt Creator — жизненная необходимость, однако стабильная работа в KDE 4 мне важнее, чем опыт установки Qt 4.5 (пока они не очень «дружат»).
Qt Creator тесно взаимодействует с другими утилитами. В частности, с Qt Designer — для визуального построения интерфейса, а с GDB — для отладки. Первым я не особо пользуюсь, но выглядит это следующим образом: при двойном щелчке по ui-файлу в списке файлов проекта в среде разработки открывается Qt Designer с тем интерфейсом, который определен в выбранном файле.
В отличие, скажем, от KDevelop, Qt Creator в качестве стандартного файла проектов не изобретает новый формат, а использует знакомый Qt-программистам pro-файл — тот самый, который надлежит передавать утилите qmake. Особые настройки проекта, касающиеся самой среды разработки, сохраняются в файл, имеющий то же имя, что проект, но с добавлением в конец слова «user».
Работа в Qt Creator
В Qt Creator есть удобный «мастер» для создания новых проектов, форм, файлов с классами и так далее. Хотя вместо создания ui-файла для главного окна можно было бы вставлять в проект какой-нибудь простой код, не касаясь вотчины визуального программирования. После создания или открытия проекта перед нами предстает сама среда разработки. Поначалу она выглядит непривычно. Например, нет знаменитых табов (вкладок с корешками). Вернее, они есть для всего кроме файлов редактора. Сами же файлы доступны из двух списков: файлов проекта (по умолчанию на панели слева) и уже открытых файлов (в верхней строке панели редактора). Почему же принято решение отказаться от вкладок? Думаю, что ради экономии места на экране.
Еще один непривычный момент довольно относителен, поскольку интерфейс «без диалогов» давно взят на вооружение некоторыми другими программами (например, редактором TEA). В Qt Creator для поиска и замены по тексту появляются поля ввода, при наборе текста в которых найденные совпадения сразу подсвечиваются в редакторе. Для поиска дальше есть F3, а для замены — отдельное поле ввода. Рядом расположены и опции. Благодаря всему этому подобные операции проводятся быстро и удобно. То же касается информационных и отладочных панелей: никакой модальности, лишних окон, перекрывающих основное, и прочих прелестей былого подхода к архитектуре интерфейса. Всё в одном главном окне!
В Qt Creator позаботились и о редакторе кода. Подсветкой синтаксиса нынче мало кого можно удивить, поэтому сразу перейдем к другим полезным возможностям. Например, есть «полный парсер кода» — это возможность редактора проверять код на правильность с точки зрения языка программирования. Когда вы набираете код, то еще до компиляции видите, где допустили синтаксическую ошибку. В большинстве случаев срабатывает, хотя бывают и исключения. Замечательно работает автоматическое дополнение: набрали имя экземпляра класса, поставили точку или «->» — и получаете выпадающий список с членами класса. Есть свёртывание блоков кода — так называемый «фолдинг». Впрочем, я считаю, что код более нагляден без него, поэтому никогда такой возможностью не пользуюсь.
Хорошо сделано перемещение по коду — причем без внешнего ctags. Достаточно поставить курсор на имя функции или переменной и нажать F2, после чего редактор переносит в место объявления. Shift-F2 — переключает между объявлением и кодом, а F4 — просто переключает заголовок и cpp-файл. Если поднести указатель мыши к имени вызываемой в коде функции, то появится подсказка по ее параметрам.
Справочная система работает следующим образом. Допустим, у вас в коде где-то есть переменная типа QMenu. Если поставить на нее курсор и нажать F1, возникает справочная панель с описанием класса QMenu. Также в главном окне существует вкладка Help, где доступна вся документации по Qt.
Главное окно разделено на вкладки:
- Welcome — экран загрузки проектов. Может быть загружено одновременно несколько.
- Edit — редактор кода.
- Debug — вызывает панель отладчика.
- Projects (или Build&Run в старых версиях) — настройки проекта. Каждый проект имеет два режима сборки: обычный (release) и отладочный (debug). Вот на этой вкладке и можно менять параметры отдельно для режима.
- Output — консольный вывод программы.
- Help — помощь.
Итак, большую часть времени вы будете проводить на вкладке редактора. Не совсем понятно, для чего в настройках Qt Creator есть целых пять разделов как бы для разных редакторов — по умолчанию, для скриптов, для С++, для проектов и Perforce (коммерческая система контроля над версиями). Настройки редактора С++ — это и есть настройки редактора кода вашей Qt-программы. Замечу, что в самых свежих «снэпшотах» Qt Creator настройки шрифта всё же упорядочены в единственный раздел, чего и следовало ожидать.
Полезно заняться настройкой подсветки и шрифтов, поскольку по умолчанию работать не очень удобно. Во-первых, размер шрифта слишком мелкий, а во-вторых, блоки кода, заключенные в #ifdef / #endif, трактуются парсером как «disabled code» (выражение из настроек Qt Creator) и раскрашиваются серым цветом — разбирать написанное не очень удобно. Если вам не нравится «фолдинг», там же в настройках редактора отключите Display Folding Markers.
На полях редактора можно ставить закладки и точки останова. Сама панель редактора может быть разделена на бесконечное множество вложенных панелей — подобно Konqueror. Таким образом на экране одновременно можно редактировать либо несколько файлов, либо один и тот же документ, но в разных местах. Для этого надо сначала разделить панель редактора (например, через Window — Split Top/Bottom), а затем выбрать пункт меню Window — Duplicate document. Такой подход иногда бывает полезнее, чем утомительные переходы по закладкам.
Архитектура Qt Creator зиждется на плагинах. Редактор — плагин, движок закладок — плагин, панель с файлами проекта — тоже плагин, и так далее. Список установленных плагинов можно посмотреть в меню Help — About Plugins. Вероятно, в будущем можно будет устанавливать дополнительные плагины, но покамест механизма для этого я не обнаружил, равно как и самих дополнительных плагинов. Зато в самих сборках новые плагины появляются с небывалой скоростью. Только за месяц появились модули поддержки Subversion и Git. Qt Creator вообще сейчас присуща скоротечность. Пункты меню Qt Creator от версии к версии переименовываются и переносятся в другие подменю. Не говоря уже о том, что постоянно рождаются дополнительные функции.
Уделим некоторое внимание окну настроек, которых, благо, много. Можно настраивать сочетания клавиш и, более того, импортировать / экспортировать их с помощью внешних файлов. Это удобно для переноса любимых сочетаний клавиш с машины на машину. В состав Qt Creator по умолчанию входят два таких предустановленных файла: для MS Visual C++ и Xcode. Всё, что связано с автоматическим дополнением, отступами, подсветкой синтаксиса и прочим, находится в настройках редактора — Text Editor.
Другое интересное средство в Qt Creator — это Locator (в старых версиях — Quick find). Для того, чтобы переместить в него фокус, достаточно нажать на Ctrl-K. Выглядит как обычная строка поиска, а служит для быстрого поиска чего угодно в чём изволите. Если говорить конкретнее — ищет файлы, в файлах, классы, функции. Поддерживает символы-модификаторы для уточнения задачи поиска. Например, вы хотите найти в документации Qt описание глобального указателя qApp. Что делать? Раньше приходилось открывать документацию через браузер и искать там. Но в Qt Creator, когда всегда под рукой Locator, достаточно набрать в строке поиска ? qapp и нажать Enter. Перейти на строку под номером 100? Пожалуйста — набираете номер и снова Enter.
И напоследок, вернемся к взаимодействию с отладчиком GDB. Qt Creator через свой графический интерфейс позволяет отлаживать не только текущий проект, но и любую внешнюю программу — конечно, если она собрана с отладочной информацией. При отладке данные различного рода отображаются в отдельных вкладках: нити, переменные, точки останова и дизассемблер. Особенно наглядно выглядит в отладчике экземпляр QStringList — видны все его элементы. Стандартный вывод самого GDB по умолчанию выключен, равно как и некоторые другие вкладки вроде сведений о содержимом регистров процессора. Если программа по какой-то причине «вылетает», то по данным в отладочной панели сразу видно, в каком именно месте кода произошел сбой.
Итоговые впечатления
Казалось бы, какие могут быть «итоги» для программы, которая развивается каждый день и выпуск коей состоится лишь в 2009 году? Однако уже сейчас Qt Creator — это мощная среда разработки. Хотя язык не поворачивается назвать ее «зрелой» — уж больно скоро в ней все меняется.
При ежедневном использовании Qt Creator я не сталкивался с вылетами (кроме ошибки в старой версии, когда при удалении текста вместе с точками останова IDE мгновенно исчезала с экрана) или зависаниями. Впрочем, есть и пара раздражающих моментов. Qt Creator иногда не перечитывает редактируемый извне файл проекта — проблема решается простым make clean, qmake, снова make (и не забудьте перед этим удалить файлы makefile.release и makefile.debug). И второе — при запуске qmake изнутри Qt Creator выполнение qmake почему-то осуществляется трижды. Впрочем, кроме этих замечаний ничего плохого о Qt Creator сказать не могу, и всем советую если не перейти на эту среду разработки, то хотя бы попробовать ее.
-
Популярные в этом разделе:
- «Обзор системы фильтрации спама rspamd: возможности, конфигурация, работа»,
- «Защищаем себя средствами GnuPG»,
- «Своё интернет-радио с Icecast».
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1