воскресенье, 21 ноября 2010 г.

Сборка и отладка плагинов для Qt Creator 2.1

Почти год назад я написал про создание и сборку плагинов для Qt Creator: часть 1 и часть 2. До третьей части руки не дошли- родилась дочка, на Creator пришлось почти полностью забить. Но сейчас появилось время поковыряться со своим плагином в последнем Creator'е, посмотреть на новые фичи. Оказалось, что написание новых плагинов теперь сильно оптимизировано- в Qt Creator 2.1 появился мастер создания плагина.

Для старых версий Qt Creator, в том числе и 2.0.1, см. пост "Пишем плагин для Qt Creator - часть 1". Этот пост актуален для Qt Creator 2.1.

Что нужно для сборки.

Я использовал библиотеку Qt 4.7.0 для MSVC. Библиотеку я не переконфигурировал. Я пробовал Qt 4.7.1, но с ней Qt Creator не линкуется.

Я собирал плагин в Qt Creator 2.1 beta 2. Также нужны его исходники, поскольку сгенерированный плагин не совместим со старыми версиями Creator'а.

Создаем новый плагин.

Во-первых, надо собрать дебаг билд Qt Creator из исходников. Используем shadow build:


Проект с построенным Qt Creator можно закрывать.

Во-вторых, создаем новый плагин. В качестве билд-директории будем использовать ту же билд директорию, что и для самого Qt Creator, иначе плагин не соберется. Директорию с исходниками плагина лучше создавать на том же уровне (параллельно) что и билд директория с исходниками Qt Creator, иначе Creator будет жаловаться, хотя и не фатально.







Что получили.

Мастер нового плагина сгенерировал файл проекта, в котором прописаны несколько вещей:
  • PROVIDER (определяет директорию, где появится плагин в lib\qtcreator\plugins, обычно это Nokia)
  • QTCREATOR_SOURCES (путь к исходникам Qt Creator)
  • IDE_BUILD_TREE (билд директория)
  • LIBS (путь к библиотекам)
и хорошо знакомые
  • TARGET (= DoNothing)
  • TEMPLATE (= lib)
  • SOURCES
  • HEADERS
  • OTHER_FILES
Также созданы файлы:
  • DoNothing.pluginspec
  • donothing.cpp
  • donothing.h
  • donothing_global.h
Я здесь содержимое этих файлов приводить не буду. Pluginspec не изменился. Сишник и хедер определяют минимальные методы плагина и реализуют новый пункт меню Tools.

Сборка.

В Build Settings плагина DoNothing указывем нужную билд-директорию.



Собираем плагин. Все должно получиться без ошибок или ворнингов.

Запускаем только что собранный Qt Creator (можно из самого Qt Creator, если не закрыли). Выбираем пункт меню Help->About Plugins... Находим в списке наш плагин:



Также, в меню Tools добавился пункт DoNothing->DoNothing action:


Что нужно для отладки.

Во-первых, проверяем Run Settings плагина: Run Configuration- запускать только что собранный Qt Creator, исполняемый файл- он же, Working directory- $BUILDDIR:



Во-вторых, открываем donothing.cpp и ставим где-нибудь точку останова. Например, но выходе из DoNothingImpl::initialize().

В-третьих, запускаем отладку плагина. Я получил сообщение, что нету дебаг хелперов. Жмем Continue Aniway. Qt Creator стартует и останавливается на нашем бряке:



суббота, 13 ноября 2010 г.

C++ и STL справка в Qt Creator

Найдено на Qt Creator Documentation Gallery. Скачиваем с нее или отсюда: cppref.qch и libstdc++-v3.qch.
UPD: Выложил на Google Docs: cppref.qch и libstdc++-v3.qch.

Копируем куда-нибудь, затем идем в Tools -> Options -> Help, на вкладке Documentation делаем Add.

Если сразу не заработает, применяем старый трюк: удаляем все доки из той же вкладки, идем на вкладку Filters, удаляем все фильтры, перезагружаем Qt Creator. Снова дабавляем новые доки в Help.

Кстати, контекстный поиск по F1 работает в справке по STL, но не в справке по C++. Index и Content работают и там и там.

Сборка Qt Creator 2.0.1 из под 2.1 beta 2

Я пробовал собирать Qt Creator 2.0.1 под Windows с Qt 4.7.0 и 4.7.1 (для VC) "искаропки"- не делал никаких configure и пр. С Qt 4.7.0 все собралось на ура. Отлаживать плагины можно, все во второй бете Creator 2.1 нормально. Также замечу, что 2.0.1 и сам себя отлично собирал с библиотекой 4.7.0.

С Qt 4.7.1 не линкуется. Линкер выдал 81 сообщение о неразрешенных внешних ссылках на методы QWebView, QWebSettings, QWebFrame, QWebPage, QWebElement. Похоже, что надо или конфигурировать Qt, или просто использовать 4.7.0. Я с этими QWebXXX не дружу...

Да, shadow build работает нормально. Раньше, помнится, с ним приходилось бороться, так что я его нафиг не использовал, а тут как-то так заработало с полпинка. Удобная вешь.

вторник, 9 ноября 2010 г.

Qt 4.7.1 и Qt Creator 2.1 Beta 2

Сегодня выпустили новую версию Qt 4.7 и вторую бету Qt Creator 2.1.

Ну что сказать, много чего пофиксили в Qt, вот список. Доступна новая версия, как всегда здесь.
Вторая бета креатора 2.1 от первой беты отличается только тучей багфиксов. Первую бету я все равно пропустил, а вот вторую обязательно буду пробовать. Список изменений по сравнению с версией 2.0 можно посмотреть здесь. Из вкусностей- Class View Дениса Мингулова, множество добавлений в поддержке Qt Quick и QML и допиленная раскрасска синтаксиса.
Также сообщают, что привычного Qt SDK больше не будет, будет Nokia Qt SDK.

среда, 27 октября 2010 г.

Qt Developer Network Wiki

Чем интересна эта вики? А тем, что она собирает вместе документацию по самойQt, Qt тулзам и адд-онам, Qt Quick и прочим модулям, и т.д. и т.п. Ну и конечно, есть инфа по Qt Creator. В частности- полезные плагины. Так что рекомендую.