Статья была опубликована 1 февраля 2010 года в 00:00, а последний раз правилась 1 февраля 2010 года в 10:46.
Ничто не предвещало, что я быстро и без сожаления перейду на новую интегрированную среду разработки 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), перевести которое я не решаюсь, а писать русскую кальку не хочу. Продукт вполне годен для ежедневного использования в работе. Свои впечатления о нем я и поведаю в этом обзоре.
Изучение Qt Creator | Урок #1 — Графический интерфейс на С++
Общие сведения
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 с тем интерфейсом, который определен в выбранном файле.
Создание первой программы в Qt Creator
В отличие, скажем, от 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 (или Buildhttps://www.nixp.ru/articles/59.html» target=»_blank»]www.nixp.ru[/mask_link]
Введение в Qt Creator
Через фронт»Qt Quick Start (vim pure писать код)»Я узнал, что до тех пор, пока настроена среда Qt (библиотека Qt и инструменты разработки), вы можете писать программы Qt с помощью чистого кода vim, а затем компилировать код Qt с помощью qmake в Qt. Конкретный процесс выглядит следующим образом:
1) Написать код Qt
2) Генерация файлов проекта через qmake -project
3) Добавьте необходимые модули в файл проекта: QT + = widgets
4) Makefile с командой qmake в соответствии с файлом проекта
5) Скомпилируйте код с помощью make, чтобы сгенерировать требуемую исполняемую программу
6) Через./«Запустите программу
Однако, если программа Qt относительно велика, писать вышеописанным способом труднее (что сильно влияет на эффективность написания). Далее я представлю QtИнтегрированная среда разработки (IDE)——Qt Creator,использованиеQt CreatorМожет выполнять задачи разработки Qt быстрее и проще, Здесь нужно обратить внимание на то, чтоQt Creator только помогает нам в быстрой разработке программ Qt, но это не означает, что Qt Creator должен использоваться при разработке программ Qt.。
Qt CreatorЭто новая кроссплатформенная Qt IDE (интегрированная среда разработки), которую можно использовать отдельно или в сочетании с библиотекой Qt и инструментами разработки для формирования полного SDK (комплекта разработки программного обеспечения). К ним относятся: расширенный редактор кода C ++, инструменты управления проектами и сборками, интегрированная контекстно-зависимая справочная система, графический отладчик, средства управления кодом и инструменты просмотра.
Ниже приведена схема интерфейса Qt Creator: есть различия между разными версиями (не большая разница):
1)Режим приветствия (Welcome): Здесь вы можете привести свой собственный пример демонстрации. При следующем открытии экрана приветствия вы можете отобразить некоторые самые последние элементы.
2)Режим компиляции (Правка): Напишите код здесь для программирования.
3)режим конструктора (дизайн)Создайте здесь графический интерфейс и выполните такие операции, как настройки свойств компонента, настройки сигналов и слотов, а также настройки макета.
4)режим отладки (Debug)В этом интерфейсе вы можете отлаживать программу по мере необходимости для отслеживания и наблюдения за состоянием программы.
5)Настройки проектаВ этом интерфейсе вы можете завершить настройку среды разработки.
6)Режим справки: Вы можете ввести ключевые слова здесь, чтобы найти соответствующую информацию.
Следующий пример протестирован в среде Ubuntu,Потому что Qt и Qt Creator имеют кроссплатформенные функции, Так что если Qt Creator также установлен в Windows (подробности смотрите«Qt 5.5.0 Windows Environment Construction»), Код Qt, написанный под Ubuntu, можно использовать без изменений, то есть Qt Creator компилируется и запускается в Windows. Аналогично, код Qt, написанный в Windows, также может быть скомпилирован и запущен в Ubuntu. Пожалуйста, выберите свою собственную платформу.
Создать пустой проект
Иногда, если мы используем код Qt, написанный другими, этот код может не включать файл проекта (Нажмите здесь, чтобы загрузить пример кода: http://download.csdn.net/detail/tennysonsky) В настоящее время нам нужно использовать Qt Creator для создания пустого файла проекта и добавления необходимой информации.
1) Щелкните правой кнопкой мыши файл-> Новый файл или проект
2) Другие проекты-> Пустой проект qmake
3) Введите имя проекта и выберите путь к хранилищу. Новый проект автоматически создаст папку с файлом проекта .pro с тем же именем, что и папка.
4) Следующий шаг
6) В режиме редактирования щелкните правой кнопкой мыши каталог проекта и выберите «Добавить существующий файл», чтобы добавить необходимые файлы (в основном файлы .cpp и .h).
7) В режиме редактирования добавьте информацию о соответствующем модуле в файл проекта, например:QT += widgets
8) Скомпилируйте и запустите после сохранения, щелкните правой кнопкой мыши на каталоге проекта и выберите «Выполнить», чтобы скомпилировать и запустить программу.
Независимо от того, каким образом Qt Creator создает файл проекта, каталог, в котором расположен файл проекта, автоматически создает файл конфигурации пользователя с суффиксом .user, который в основном сохраняет информацию о конфигурации проекта (например, путь, в котором расположен проект, и некоторые сообщения об ошибках при компиляции кода). Поэтому, если вы хотите скопировать код, который вы написали другим, лучше всего удалить этот файл конфигурации。
Ниже показано, как быстро открыть каталог, в котором находится проект:
В режиме редактирования-> выберите файл проекта-> щелкните правой кнопкой мыши-> выберите «Показать включенные каталоги», чтобы отобразить каталог, в котором находится проект (этот метод также может открыть каталог, в котором находится файл кода):
После компиляции и запуска кода Qt через Qt Creator, соответствующий каталог buid будет сгенерирован в каталоге-родственнике каталога проекта.:
Зайдя в этот каталог сборки, вы можете найти исполняемую программу, которую можно запустить прямо из терминала через «./»:
Создать приложение Gui завершить проект
Создать полный проект (без пользовательского интерфейса)
Далее, мы создаем полный проект приложения Gui (без интерфейса, как описано ниже), мы можем создать пустое окно, вообще не написав ни строки кода.
1) Щелкните правой кнопкой мыши файл-> Новый файл или проект
2)Application -> Qt Widgets Application
3) Введите название проекта и выберите путь хранения
4) Следующий шаг
5) Введите имя класса пользовательского класса, выберите необходимый базовый класс (QMainWindow, QWidget, QDialog), здесь выберите базовый класс как QWidget.Флажок «Создать интерфейс» установлен по умолчанию, что означает, что для проектирования интерфейса необходимо использовать конструктор интерфейса, в противном случае проектирование интерфейса должно быть завершено с использованием кода.。
Класс QMainWindow предоставляет главное окно приложения со строкой меню, окном привязки (например, панелью инструментов) и строкой состояния.
Класс QWidget является базовым классом для всех объектов пользовательского интерфейса.
Класс QDialog является базовым классом для диалоговых окон. Диалоговые окна — это окна верхнего уровня, которые в основном используются для краткосрочных задач и краткого общения с пользователями.
7) Скомпилируйте и запустите программу, нажмите зеленую стрелку вправо в левом нижнем углу или нажмите ярлыкCtrl + RMsgstr «Результатом работы является пустое окно.
Qt Creator. Интегрированная среда для Qt
На днях вышла предварительная версия IDE Qt Creator, предназначенная для разработки программ с помощью библиотеки Qt, в которой есть и отладчик, и дизайнер интерфейса, и удобный редактор кода с различными подсказками. Я не мог пройти мимо и не поковыряться в новой среде. Заодно таким образом неожиданно появился еще один повод поиграть с Qt, а то я давно хожу вокруг да около этой библиотеки, изредка пробую новые версии, но для реальной работы пока не использовал.
Установка
Первая проблема с Qt Creator появилась еще во время установки, когда инсталлятор сообщил об ошибке при копировании файла libNokiaBinEditor.dll.
Ошибка при установке Qt Creator
Установить IDE удалось только после того, как инсталятору сказал не устанавливать Qt Development Libraries, а сам Qt скачал и поставил отдельно.
В версии под Windows прилагается компилятор MinGW, поэтому никакие дополнительные компиляторы не нужны.
Редактор кода Qt Creator
Первое, что бросается в глаза при запуске среды — симпатичный внешний вид в серых тонах. Вообще внешне Qt Creator выглядит как-то непривычно для IDE, которые обычно оформлены более строго или, я бы сказал, скорее аскетично. Здесь нет привычной панели инструментов, а отдельные инструменты представляют собой не перетаскиваемые окна, которые «прилипают» к краям или присоединяются к другим окнам, а являются частями главного окна, положение которых не меняется. Это скорее минус, но даже при таком положении дел интерфейс довольно удобный. Сама среда разработки довольно быстро запускается и шустро работает, что не может не радовать.
Внешний вид Qt Creator
Кнопки в левой части окна открывают такие элементы среды разработки как настройки компиляции, последние открытые файлы, переключение в режим отладчика и открытие справки.
Редактор кода показался очень удобным. Во-первых, в нем есть подсказки по членам и методам классов, которые появляются после ввода точки или «->».
Подсказки по членам класса
Кстати, подсказки по методам классов из STL Qt Creator не показывает, а STL-ные заголовочные файлы почему-то подчеркивает со словами «не могу найти», хотя компилятся такие файлы без проблем.
И есть, разумеется, подсказки по параметрам функции. Такие подсказки выскакивают после открытия скобки:
Или подсказки можно вызвать, если нажать Ctrl+пробел после открытия скобки:
С помощью специального инструмента на панели можно перемещаться по функциям, которые описаны в открытом файле:
Обзор функций в файле
К сожалению, в Qt Creator нельзя открывать несколько файлов в разных вкладках. Открытым все время является только один файл и для перемещения между ними приходится использовать дерево проекта или выпадающий список с открытыми файлами.
Кстати, есть неплохой поиск по файлам:
А поиск текста в открытом файле работает так же как и в браузерах, то есть с помощью панели внизу экрана, а не с помощью окон, которые закрывают весь код:
Проекты и компиляция
В качестве проекта для IDE используется проектный файл .pro который используется при компиляции программы, которая использует Qt.
Некоторые ошибки вроде незакрытых скобок и непоставленных точек с запятой подчеркиваются еще до компиляции.
Красиво смотрится индикатор успешности компиляции в левой нижней части экрана.
В Qt Creator есть встроенный отладчик, но воспользоваться им мне так и не удалось — отладчик вроде бы запускается, то программу не выполняет и до точек останова не доходит.
Сообщения об ошибках оформлены вот в таким виде:
К сожалению, Qt Creator жестко завязана на саму Qt, а то пока качал была у меня надежда на счет того, что удастся отключить Qt и использовать Qt Creator в качестве IDE для MinGW. К сожалению, сделать это удастся. Виной всему Qt-ный формат проекта. Даже в настройках компиляции в списке задач невозможно отключить выполнение QMake. Параметры запуска QMake тоже не меняются.
Так как эта среда разработки заточена под Qt, то не удивительно, что в ней есть и дизайнер интерфейсов:
Как видите, при разрешении экрана 1280×1024 места по горизонтали катастрофически мало, хотя панель с контролами можно сделать раза в два поуже. Дизайнер работает хорошо, никаких явных глюков я не заметил. Странно только то, что обработчики событий приходится объявлять самому в редакторе кода. Разработчики Qt Creator могли бы возложить эту задачу на плечи дизайнера.
UPDATE: Как заметил Power user в комментариях, в дизайнере есть редактор слотов, с помощью которого можно удобно связать обработчик события от контрола с каким-нибудь слотом.
А теперь немного грустного на счет русских букв. Как видно на скриншоте, в дизайнере все отображается нормально, если эту программу запустить, то тоже все будет в порядке. Это благодаря тому, что интерфейс описывается в файле .ui в формате XML с кодировкой UTF-8. А вот если попытаться открыть этот же файл в редакторе, то на месте русских букв будут кракозяблы.
Редактор кода не понимает эту кодировку. Хуже всего то, что не удается использовать русские буквы в тексте программы. Например, если просто использовать строки на русском языке в той кодировке, в которой сохраняются файлы .cpp (то есть по крайней мере в Windows в кодировке Win-1251), то получим:
А если перекодировать исходник в UTF-8 (и использовать функцию trUtf8), то в окне текст станет читаемым, а в редакторе нет:
Хочется верить, что в будущем разработчики исправят это недоразумение.
UPDATE: Как подсказал в комментариях Vladimir, это так и должно быть и все легко исправляется:
Так и должно быть, чтобы избавиться от крякозябр нужно настроить кодеки
QTextCodec *cyrillicCodec = QTextCodec::codecForName(”CP1251?);
QTextCodec::setCodecForTr(cyrillicCodec);
QTextCodec::setCodecForLocale(cyrillicCodec);
QTextCodec::setCodecForCStrings(cyrillicCodec);в начале функции main, после создании экземпляра объекта QApplication и все будет зашибись с отображением русских букв.
Заключение
В целом среда разработки мне понравилась, особенно учитывая то, что это еще не окончательная версия (сейчас ее номер 0.9). Среда работает быстро, есть удобные подсказки. Несмотря на проблемы с установкой, потом все заработало и начало компилиться без проблем. Отладчик, хочется верить, быстро починят и к релизу он уже будет работоспособным. Очень жаль, что Qt Creator не удастся использовать в качестве IDE для проектов, которые не используют Qt.
И вообще получилась интересная вещь.
Скачать Qt Creator можно отсюда, версия под Windows весит 208 МБ.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Источник: jenyay.net