четверг, 30 декабря 2010 г.

С Новым Годом!

Вот и еще один год прошел. Надеюсь, для вас он был полон добрых и светлых событий. Очень хочу, чтобы наступающий год был еще лучше!

Желаю вам всем традиционно-новогоднего- счастья, здоровья, удачи!

вторник, 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).

пятница, 26 ноября 2010 г.

Видео/Скринкасты по Qt и Qt Creator

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

Теперь про материалы от Нокии или официальных партнеров. На Qt Developer Days 2010 был интересный, но длинный доклад Getting the Most out of Qt Creator.

Сегодня я зашел на Qt eLearning от Нокии. Там много видео по Qt, что отлично дополняет Qt документацию. Также там появилось "официальное" Hello World! видео по Qt Creator.

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

вторник, 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. В частности- полезные плагины. Так что рекомендую.

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

Qt 4.7 портирована на Haiku OS

Вот и до Гайки добрались- парни с Qt-Haiku.ru постарались. Отличная новость для пользователей Haiku, теперь портировать будут все подряд. Глядишь, и до Qt Creator скоро доберутся. :)
Собственно, вот эта новость про порт Qt и подвигла меня поставить доступную сейчас вторую альфу. Haiku- интересная вещь. Цель этого проекта- создать мощную, простую и элегантную операционку для рядового пользователя, какой задумывалась Be OS. Не знаю, как насчет "элегантная" (сравните с LinuxMint, к примеру), но мощная и простая- это да. Опять таки, не знаю, как насчет "рядового пользователя". Haiku явно не достает привычных сервисов и удобств, например, менеджера пакетов типа Synaptic или протокола WPA. Хочется надеяться, что все это изменится в лучшую сторону к моменту полноценного релиза, народ работает.
Пока что Гайка- отличная ось для гиков. Хочешь- драйверы пиши, хочешь- приложения разрабатывай, хочешь- портируй все подряд. Будем ждать, когда Qt Creator перенесут и на нее.

воскресенье, 27 июня 2010 г.

Qt Creator 2.0

23 июня вышел новый Qt Creator. Qt Quick в нем нет.

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

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

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

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

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

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

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

-nomake

Вот ключики для ускорения компиляции Qt- выкидываем все лишнее из configure:

-nomake tools
-nomake examples
-nomake demos
-nomake docs
-nomake translations

Например:
./configure -nomake examples -nomake demos

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 не хочет линковаться...

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

Сборка Qt под ICC на Ubuntu - продолжение

Вот тут я уже писал, как собирать Qt под ICC. Однако для работы Qt Creator нужна дллька qwebview.dll (libqwebview.so), которая собирается вместе с WebKit. Я, конечно, в оригинальном конфиге никаких QtScript и WebKit не разрешал, однако для Креатора таки придется. Правильно будет вот так:

$ ./configure -opensource -release -platform linux-icc -qt-sql-sqlite -plugin-sql-sqlite -webkit -nomake examples -nomake demos -no-qt3support -no-opengl -no-phonon -no-phonon-backend

При сборке под Windows все хорошо- ICC собирает все подряд без ошибок, а вот под Ubuntu возникает проблема. Полностью она изложена в QTBUG-9172 и в WebKit Bug 36422, вкратце- вот что выдается компилятором ICC:

../JavaScriptCore/jit/JITStubs.cpp(108): error: expected an identifier

asm volatile (

^

UPD: Файл, на котором компилятор ломается, находится в src\3rdparty\webkit\JavaScriptCore\jit\. А вот кусок кода, который не может быть разобран:

#if COMPILER(GCC) && PLATFORM(X86)

...

asm volatile (

Практически это означает, что Qt Creator, даже если его и собрать под ICC, работать не будет, потому что нет нужных длл. Не знаю, может быть, ICC умеет делать такой же name mangling, как и GCC. Если это так, то возможно будет использование длллек прямо из Qt SDK. Однако, как этого добиться от ICC, я не знаю. В доках по ICC есть некоторая инфа по совмести с G++, буду смотреть.

UPD: WebKit Bug 36422 подтвержден Kent Hansen.
UPD2: WebKit Bug 36422 пофиксен и закрыт Oliver Goffart.

суббота, 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 г.

Сборка Qt под ICC на Ubuntu

Пишут, что ICC генериует более быстрый код, чем GCC. Я процессорами AMD не пользуюсь, вот и решил попробовать, будет ли Qt Creator работать быстрее, если его собрать под ICC.
Установка ICC на Ubuntu описана здесь. Поскольку Qt Creator будет использовать длльки Qt, то нам придется пересобрать саму Qt под ICC из исходников. Я скачал Qt 4.6.2 для Linux.
Для успешной компиляции необходимо изменить конфигурацию. Во-первых, надо сменить платформу на linux-icc. Во-вторых, у меня отказались собираться webkit и qtscript, которые я все равно не использую. Быстрое гугление проблему не решило, и на них я забил. Вопреки разным советам, ничего менять в директории mkspec не надо. Также, не надо трогать и QMAKE_CFLAGS_RELEASE.
После распаковки надо указать путь к библиотеке в переменной PATH:
$ PATH=/home/qt-everywhere-opensource-src-4.6.2/bin:$PATH
$ export PATH
Также, надо установить libxext-dev:
$ sudo apt-get install libxext-dev
В директории с распакованной Qt, выполняем
$ ./configure -platform linux-icc -nomake examples -nomake demos -qt-sql-sqlite -no-qt3support -no-opengl -no-dbus -no-phonon -no-phonon-backend -no-webkit -no-script
Затем делаем
$ make
Make несколько раз вылетал с внутренней ошибкой ICC, но в итоге все собралось.

воскресенье, 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, похоже, уже недолго осталось.

пятница, 1 января 2010 г.

С Новым Годом!

Поздравляю всех читателей с Новым 2010 Годом! Пусть этот год будет лучше предыдущего! Желаю вам здоровья, счастья и, конечно, удачи в Новом Году!

Спасибо за интерес к моему блогу!