Показаны сообщения с ярлыком Qt Creator. Показать все сообщения
Показаны сообщения с ярлыком Qt Creator. Показать все сообщения

вторник, 1 марта 2011 г.

Qt 4.7.2 и Qt Creator 2.1

Наконец-то вышли Qt Creator 2.1 и Qt 4.7.2. Скачать, как обычно, можно на странице download по частям или в составе Qt SDK 1.1 Beta для нужной платформы.


вторник, 22 февраля 2011 г.

Qt and Qt Creator for Android

Т.е. чтобы не случилось с (в) Нокия, поскольку есть порт для Android, будут программисты, и деньги, и поддержка Qt.

Только что прочитал на хабре, что Qt теперь заточена и под Андроид- вышла альфа проекта Necessitas. И Qt Creator может создавать приложения для Андроид. Его, правда, надо собрать из исходников.

пятница, 11 февраля 2011 г.

Qt is dead?

Ну что тут сказать? Кинули разработчиков в очередной раз. Понятно, что Qt им больше не нужна. Qt Creator- и того меньше. Что сейчас Qt может спасти- это если Nokia продаст библиотеку кому-нибудь. Не уверен, что энтузиасты могут легально форкнуть проект и продожать развитие Qt своими силами...

UPD: Спасибо, за комменты, форк возможен. И это здорово.
Вот Нокия уверяет, что Qt с ней не пропадет (а народ все равно не верит).
А вот пост по поводу прошлых свершений Елопа и неизбежности форка Qt.

понедельник, 3 января 2011 г.

Пишем плагин для Qt Creator - часть 3

Я в отпуске, так что появилось время написать следующую серию про создание плагинов для Qt Creator. Предыдущий пост на ту же тему Сборка и отладка плагинов для Qt Creator 2.1 практически заменяет вот эти две старые части:
Итак,

Часть 3 - Настройки плагина
В этой части речь пойдет про создание страницы в диалоге Tools->Options. Для эксперимента возьмем уже существующую страницу установок C++. Можно добавить свою, но интереснее добавить таб вот сюда:



...чтобы в итоге получилось вот что:



Мы будем использовать тот же плагин DoNothing, что и в предыдущих постах.
Да, чуть не забыл. Версия Qt Creator- 2.1 RC 1 (2.0.94). Версия Qt- 4.7.1.

Категория плагина
Перед тем, как начать конструировать страницу опций, определим категорию плагина. Это может быть как одна из уже существуюших категорий (Build Systems, C++, Version Control и т.д.), так и абсолютно новая категория. Категория- это ветка в окне Installed Plugins, которое вызывается из меню Help->About Plugins. На рисунке внизу DoNothing живет в своей собственной категории Useless:



Категория задается в спеке плагина donothing.pluginspec строкой:
<category>Useless</category>
В дальнейшем будем использовать уже существующую категорию "C++".

Зависимости
В спек и в файл проекта надо добавить две зависимости- Project Explorer и CppTools.

Настройки плагина
В Qt Creator для настроек есть диалог Options. Понятно, что нам надо создать виджеты для этого диалога, сделать их доступными для Qt Creator и научить наш плагин получать информации от виджетов.
Настроек добавим две- option1CheckBox и option2CheckBox. Они будут частью виджета DoNothingSettingsWidget:



Внутреннее устройство
Для работы понадобятся четыре класса:
  • DoNothingSettings - собственно определяет настройки плагина (bool option1 и option2) и методы readSettings() и writeSettings() для загрузки при запуске Qt Creator и сохранения настроек при их изменении пользователем;
  • DoNothingSettingsPageWidget - наследуется от QWidget и содержит наш виджет. Также определяет геттер и сеттер для настроек, т.е. транслирует ГУЙ в bool и обратно. Также он реализует метод searchKeywords() для поддержки класса страницы DoNothingSettingsPage, о котором ниже;
  • DoNothingSettingsPage - наследуется от Core::IOptionsPage, содержит указатель на DoNothingSettingsPageWidget и отвечает за работу страницы настроек в целом. Он определяет унаследованные методы для регистрации и работы страницы настроек(createPage(), apply(), matches(), id(), displayName() и пр.). Именно этот класс позволяет добавить наш виджет в любую страницу настроек;
  • DoNothingPlugin - собственно класс плагина. Нследуется от IPlugin, содержит экземпляр класса DoNothingSettings и указатель на страницу настроек. Этот класс определяет работу всего плагина. Для нас сейчас выжны методы initialize(), и геттер и сеттер для настроек.
Надо отметить, что различные плагины в Qt Creator по-разному хранят настройки. В одних реализациях экземпляр класса XxxSettings принадлежит XxxSeetingsPageWidget или XxxSettingsPage, в других- самому плагину, как в моем примере.
Как же удается добавить наш новый таб в существующую страницу настроек? Класс DoNothingSettingsPage определяет методы category() и displayCategory(). Также он определяет и иконку, которая будет отображаться на нашей странице- categoryIcon(). Практически, все, что надо сделать, это:

QString DoNothingSettingsPage::category() const
{
return QLatin1String("I.C++");
}

QString DoNothingSettingsPage::displayCategory() const
{
return QCoreApplication::translate("DoNothing", QT_TRANSLATE_NOOP("DoNothing", "C++");
}

QIcon DoNothingSettingsPage::categoryIcon() const
{
return QIcon(QLatin1String(":/core/images/category_cpp.png"));
}

В методе DoNothingPlugin::initialize() надо создать страницу настроек с помощью:

// create the settings page and add a tab to the chosen category
doNothingSettingsPage = new DoNothingSettingsPage();
addAutoReleasedObject(doNothingSettingsPage);

Файлы плагина
В принципе, вот такие файлы надо будет создать:
  • donothingsettingswidget.ui - содержит ГУЙ нашешего виджета;
  • donthingconstants.h - содержит константы для класса DoNothingSettingsPage и DoNothingSettings;
  • donothingsettings.h (и donothingsettings.cpp) - содержит класс DoNothingSettings и операторы == и != над ним;
  • donothingsettingspage.h (donothingsettingspage.cpp) - содержит классы DoNothingSettingsPageWidget и DoNothingSettingsPage.
Имена файлов- традиционные для плагинов Qt Creator.

Исходный код
Я не стал здесь приводить исходный код, все равно проще его смотреть в самом креаторе. Код можно скачать отсюда: QtCreatorPlugins-Part3.zip. Надо просто создать папку и разархивировать в нее.

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

Шпаргалка по горячим клавишам Qt Creator 2.1

KDAB обновила шпаргалку по горячим клавишам. Качаем для Qt Creator 2.1.

UPD: 16 декабря поправили кое-какие ошибки, рекомендуется скачать снова.

понедельник, 29 ноября 2010 г.

Собираем Qt Creator с Qt 4.7.1

В предыдущих постах я написал, что Qt Creator 2.0.1 и 2.1 beta 2 не собираются с бинарниками из Qt Framework 4.7.1 под Windows. Как выяснилось, не собирается и Qt Creator 2.1 RC1, и не только под Windows, но и под Linux.

Я скачал исходники Qt 4.7.1 и просто собрал под MSVC 2008, используя вот такой config:
configure -opensource -debug-and-release -shared -platform win32-msvc2008 -developer-build -qt-sql-sqlite -plugin-sql-sqlite -webkit -script -declarative -qt-libtiff -nomake examples -nomake demos -no-qt3support -no-opengl -no-phonon -no-phonon-backend

Надо сказать, что все собралось, и Qt Creator 2.1 RC1 слинковался на ура.

UPD: Выяснилось, что качать/собирать Qt не обязательно. Проблема была вчера (30 ноября) зарегестрирована как QTBUG-15744 и решается копированием правильного файла зависимостей qt_webkit_version.pri в нужное место ($QTDIR/mkspecs/modules).

четверг, 25 ноября 2010 г.

Qt Creator 2.1 Release Candidate

Тролли выпустили Qt Creator 2.1 RC. Там же линки для скачивания.

воскресенье, 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 работает нормально. Раньше, помнится, с ним приходилось бороться, так что я его нафиг не использовал, а тут как-то так заработало с полпинка. Удобная вешь.

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

Qt Developer Network Wiki

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

четверг, 10 июня 2010 г.

«Знакомство с Qt Creator 2.0 Beta»

"Open Source" 061 опубликовал заметку «Знакомство с Qt Creator 2.0 Beta» (Петр Семилетов) о бете второго Креатора. Я до этой новости добрался спустя неделю, но лучше поздно чем никогда. Если вкратце, то в статье перечислены некоторые огрехи среды, рассмотрен пример на QML, упомянуты плагин для Mercurial (наконец-то в официальной сборке!) и удачный апдейт файлового менеджера, отмечены изменения в гуе.

С автором я согласен, что новая версия обрадует в основном программистов для смартфонов (надо полазить по форумам, посмотреть отзывы). И да, в остальном изменений мало, а вот привыкать к новому гую придется.

От себя добавлю, что нету Class Explorer'а, опять придется прикручивать падающий плагин. Зато файловый менеджер есть. :)

В исходный код я заглянул, но времени там копаться не было и нет. И, похоже, не будет. А жаль, копаться там можно долго, такие там зависимости есть, одно удовольствие. :)

пятница, 7 мая 2010 г.

Qt 4.7 и Qt Creator 2.0 Beta 1

Вчера (6 мая) вышли первые беты. Скачать можно тут.

Про бету нового Qt Creator можно прочитать в его блоге: пост раз, пост два. Там и картинки, и видео про новый Креатор.

воскресенье, 28 марта 2010 г.

Сборка Qt Creator под ICC

Порядка трех недель назад я попробовал откомпилировать Qt Creator 1.3.1 под Ubuntu под ICC, чтобы просто посмотреть, будет ли он работать быстрее, чем тот, что можно скачать с оффсайта. Надо сказать, что следуя простой инструкции, приведенной ниже, все собирается на ура.

$ qmake qtcreator.pro
$ make

Ради интереса, я попробовал так же скомпилировать его и под Windows. Вот что выдал линкер:

    link /LIBPATH:"d:\Qt\4.6.2-ICC\lib" /NOLOGO /DLL /OUT:..\..\..\lib\qtcreator\plugins\Nokia\Debugger.dll @C:\DOCUME~1\alex\LOCALS~1\Temp\nmB5.tmp

   Creating library ..\..\..\lib\qtcreator\plugins\Nokia\Debugger.lib and object ..\..\..\lib\qtcreator\plugins\Nokia\Debugger.exp

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__LookupPrivilegeValueW@12 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__OpenProcessToken@12 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

sharedlibraryinjector.obj : error LNK2019: unresolved external symbol __imp__AdjustTokenPrivileges@24 referenced in function "private: bool __thiscall Debugger::Internal::SharedLibraryInjector::escalatePrivileges(class QString *)" (?escalatePrivileges@SharedLibraryInjector@Internal@Debugger@@AAE_NPAVQString@@@Z)

..\..\..\lib\qtcreator\plugins\Nokia\Debugger.dll : fatal error LNK1120: 3 unresolved externals

 

Ну, не больно-то и хотелось- код, который генерит MSVC, и так хорошо оптимизирован, чего еще надо.

Получается, что на Ubuntu я пока не могу перейти на Qt Creator, построенный с ICC. Затык по-прежнему в компиляции самой Qt. Я обновил пост про Qt, в котором написал, как ее собирать с ICC, какие проблемы при этом возникли. Я туда добавил фрагмент файла, который ICC не переваривает. Как дойдут руки, посмотрю, как заставить его компиляться.

Кстати, под Windows Qt с ICC собралась замечательно. Однако, тут сам Qt Creator не хочет линковаться...

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

Qt Creator 1.3.81 и Qt 4.7.0 Technical Preview

На днях тролли выпустили первую альфу новых Qt Creator и собственно библиотеки Qt. Скачать можно здесь. Инструкции по сборке и установке здесь.

Из нового в Qt Creator 2.0 (или 1.3.81 пока что):
  • Поддержка Qt Quick (Quick Designer)
  • Новый формат файла проекта QML-приложений
  • Продвинутый редактор QML / JavaScript
  • Отладка QML
Также обновилось руководство по Qt Creator.

воскресенье, 7 февраля 2010 г.

Еще плагины

Вот два плагина, которые могут пригодиться, хотя я их и не ставил.

Плагин для Doxygen: http://dev.kofee.org/QtCreator-Doxygen/.
Плагин для макросов: см. в master branch Qt Creator 1.3.80 или branch 1.3 для Qt Creator 1.3.1 в http://gitorious.org/creator-plugins.

вторник, 26 января 2010 г.

Class View для Qt Creator



Называется этот плагин CppSupport, сделал его некий VisualFC сотоварищи. Плагин поддерживает Qt Creator 1.3.0 и 1.3.1. Исходники и собранная дллька под Windows живут здесь. Установка простая- открываем архив для нужной версии креатора и копируем директорию win32-plugin со всем ее содержимым в \qtcreator\plugins.

Плагин этот немного сыроват. Я загрузил qtcreator.pro, открыл проект gitplugin, немного потыкался в Class View, и Qt Creator вылетел почти сразу. А в мелком проекте CppSupport работает ничего себе.

Под линукс я его пока не собирал.

UPD: Class View от Дениса Мингулова входит в состав Qt Creator 2.1. Доступен во второй бете, работает как часы.

Qt Creator 1.3.1 и Qt 4.6.1

Несколько дней назад (18 января) обновились Qt и Qt Creator. Качаем, как всегда, отсюда. Пофиксили несколько неприятностей с отладкой. Список изменений- здесь.

воскресенье, 17 января 2010 г.

Сборка Qt Creator из исходников - дубль два

Вот тут я уже писал про сборку Qt Creator из mainline. Со времени предыдущего поста прошло почти два месяца, были выпущены Qt 4.6.0 и Qt Creator 1.3.0, а в репозиториях креатора была создана ветка 1.3.1.

К теме решил вернуться вот почему. Дело в том, что предыдущий пост я оставил незаконченным- под Windows Qt Creator 1.3.80 грузился с ошибкой "Failed to load core: \Nokia\Core.dll: Cannot load library \Nokia\Core.dll: The specified module could not be found." Я тогда написал в maillist о проблеме, получил пару ответов, которые ее не решили, и, честно говоря, на проблему забил. На днях попробовал запустить старый екзешник с Qt 4.6.0- он взял и заработал. Пост-то я проапдейтил, но стало интересно, соберется ли Qt Creator из свежайших исходников. Сразу скажу- собрался и заработал на ура. Вот что я сделал (все под Windows, под Linux- не пробовал).

Перво наперво- проверил, что путь к bin директории Qt 4.6.0 прописан в PATH:
PATH=...;d:\Qt\4.6.0\bin;

Потом скачал исходники в новую директорию, чтобы исключить какие-либо зависимости от старых экспериментов. В git bash делаем
$ git clone git://gitorious.org/qt-creator/qt-creator.git

Затем открыл Qt Creator 1.3.0 и собрал 1.3.80 с помощью Qt 4.6.0 под MSVC. Я собирал Release версию.

После этого я скопировал jom.exe из старого Qt Creator в новый. Jom живет в qt-creator/bin.

Ну а после этого, запустил креатор 1.3.80, на экране Welcome выбрал пример Calendar, скомпилировал и запустил.



Все работает и Calendar даже отлаживается. Никакого копирования библиотек, никаких сообщений об ошибках в Core.dll.

Вот что бросается в глаза из добавленного в версии 1.3.80:
  • Поддержка QML- можно создавать QML- проекты. Дальше я не копал.
  • Переделанный экран Welcome->Getting Started- теперь можно выбрать Qt Example прямо там, он сразу заргузится, откроет Help. Очень удобно.
  • Переделанные настройки в Tools->Options. Старые не видятся вообще. Что, наверное, правильно, потому как старый креатор по-прежнему основной, и убивать его настройки не хочется.
Так что все вполне юзабельно. Ждем выхода 1.3.1, похоже, уже недолго осталось.

среда, 16 декабря 2009 г.

Еще блог по Qt Creator

Нашел еще блог по теме: Qt Creator Blog. Почитаю на досуге, вроде ничего так.