Qt Creator. Интегрированная среда для Qt

Qt Creator. Интегрированная среда для Qt qt_logo2На днях вышла предварительная версия IDE Qt Creator, предназначенная для разработки программ с помощью библиотеки Qt, в которой есть и отладчик, и дизайнер интерфейса, и удобный редактор кода с различными подсказками. Я не мог пройти мимо и не поковыряться в новой среде. Заодно таким образом неожиданно появился еще один повод поиграть с Qt, а то я давно хожу вокруг да около этой библиотеки, изредка пробую новые версии, но для реальной работы пока не использовал.

Установка

Первая проблема с Qt Creator появилась еще во время установки, когда инсталлятор сообщил об ошибке при копировании файла lib\Nokia\BinEditor.dll.

Qt Creator. Интегрированная среда для Qt qt_install-300x230

Ошибка при установке Qt Creator

Установить IDE удалось только после того, как инсталятору сказал не устанавливать Qt Development Libraries, а сам Qt скачал и поставил отдельно.

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

Редактор кода Qt Creator

Первое, что бросается в глаза при запуске среды - симпатичный внешний вид в серых тонах. Вообще внешне Qt Creator выглядит как-то непривычно для IDE, которые обычно оформлены более строго или, я бы сказал, скорее аскетично. Здесь нет привычной панели инструментов, а отдельные инструменты представляют собой не перетаскиваемые окна, которые “прилипают” к краям или присоединяются к другим окнам, а являются частями главного окна, положение которых не меняется. Это скорее минус, но даже при таком положении дел интерфейс довольно удобный. Сама среда разработки довольно быстро запускается и шустро работает, что не может не радовать.

Qt Creator. Интегрированная среда для Qt qt_common-300x282

Внешний вид Qt Creator

Кнопки в левой части окна открывают такие элементы среды разработки как настройки компиляции, последние открытые файлы, переключение в режим отладчика и открытие справки.

Редактор кода показался очень удобным. Во-первых, в нем есть подсказки по членам и методам классов, которые появляются после ввода точки или “->”.

Qt Creator. Интегрированная среда для Qt qt_hint_01-300x292

Подсказки по членам класса

Кстати, подсказки по методам классов из STL Qt Creator не показывает, а STL-ные заголовочные файлы почему-то подчеркивает со словами “не могу найти”, хотя компилятся такие файлы без проблем.

И есть, разумеется, подсказки по параметрам функции. Такие подсказки выскакивают после открытия скобки:

Qt Creator. Интегрированная среда для Qt qt_hint_02-258x300

Или подсказки можно вызвать, если нажать Ctrl+пробел после открытия скобки:

Qt Creator. Интегрированная среда для Qt qt_hint_03-300x129

С помощью специального инструмента на панели можно перемещаться по функциям, которые описаны в открытом файле:

Qt Creator. Интегрированная среда для Qt qt_hint_04-300x285

Обзор функций в файле

К сожалению, в Qt Creator нельзя открывать несколько файлов в разных вкладках. Открытым все время является только один файл и для перемещения между ними приходится использовать дерево проекта или выпадающий список с открытыми файлами.

Кстати, есть неплохой поиск по файлам:

Qt Creator. Интегрированная среда для Qt qt_search-300x118

А поиск текста в открытом файле работает так же как и в браузерах, то есть с помощью панели внизу экрана, а не с помощью окон, которые закрывают весь код:

Qt Creator. Интегрированная среда для Qt qt_find-300x73

Проекты и компиляция

В качестве проекта для IDE используется проектный файл .pro который используется при компиляции программы, которая использует Qt.

Qt Creator. Интегрированная среда для Qt qt_project-300x149

Файл проекта

Некоторые ошибки вроде незакрытых скобок и непоставленных точек с запятой подчеркиваются еще до компиляции.

Красиво смотрится индикатор успешности компиляции в левой нижней части экрана.

Qt Creator. Интегрированная среда для Qt qt_build_011 Qt Creator. Интегрированная среда для Qt qt_build_03

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

Сообщения об ошибках оформлены вот в таким виде:

Qt Creator. Интегрированная среда для Qt qt_build_02-284x300

К сожалению, Qt Creator жестко завязана на саму Qt, а то пока качал была у меня надежда на счет того, что удастся отключить Qt и использовать Qt Creator в качестве IDE для MinGW. К сожалению, сделать это удастся. Виной всему Qt-ный формат проекта. Даже в настройках компиляции в списке задач невозможно отключить выполнение QMake. Параметры запуска QMake тоже не меняются.

Так как эта среда разработки заточена под Qt, то не удивительно, что в ней есть и дизайнер интерфейсов:

Qt Creator. Интегрированная среда для Qt qt_designer_01-300x262

Как видите, при разрешении экрана 1280×1024 места по горизонтали катастрофически мало, хотя панель с контролами можно сделать раза в два поуже. Дизайнер работает хорошо, никаких явных глюков я не заметил. Странно только то, что обработчики событий приходится объявлять самому в редакторе кода. Разработчики Qt Creator могли бы возложить эту задачу на плечи дизайнера.

UPDATE: Как заметил Power user в комментариях, в дизайнере есть редактор слотов, с помощью которого можно удобно связать обработчик события от контрола с каким-нибудь слотом.

А теперь немного грустного на счет русских букв. Как видно на скриншоте, в дизайнере все отображается нормально, если эту программу запустить, то тоже все будет в порядке. Это благодаря тому, что интерфейс описывается в файле .ui в формате XML с кодировкой UTF-8. А вот если попытаться открыть этот же файл в редакторе, то на месте русских букв будут кракозяблы. Редактор кода не понимает эту кодировку. Хуже всего то, что не удается использовать русские буквы в тексте программы. Например, если просто использовать строки на русском языке в той кодировке, в которой сохраняются файлы .cpp (то есть по крайней мере в Windows в кодировке Win-1251), то получим:

Qt Creator. Интегрированная среда для Qt qt_run_01-300x223

А если перекодировать исходник в UTF-8 (и использовать функцию trUtf8), то в окне текст станет читаемым, а в редакторе нет:

Qt Creator. Интегрированная среда для Qt qt_run_02-300x212

Хочется верить, что в будущем разработчики исправят это недоразумение.

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 МБ.

Похожие записи

1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 2.78 out of 5)
Loading ... Loading ...

Комментарии (24)

  1. Vladimir:

    >А если перекодировать исходник в UTF-8 (и использовать функцию trUtf8), то в окне текст станет читаемым, а в редакторе нет:

    Чуда юда рыба кит, а не обзорщик из тебя. Так и должно быть, чтобы избавиться от крякозябр нужно настроить кодеки

    QTextCodec *cyrillicCodec = QTextCodec::codecForName(”CP1251″);
    QTextCodec::setCodecForTr(cyrillicCodec);
    QTextCodec::setCodecForLocale(cyrillicCodec);
    QTextCodec::setCodecForCStrings(cyrillicCodec);

    в начале функции main, после создании экземпляра объекта QApplication и все будет зашибись с отображением русских букв.

  2. Power user:

    нажимаешь F4 и привязываешь сигналы к слотам в дизайнере.
    F3 возвращаешься к редактированию Widgets.
    Смотрите шоткаты в дизайнере!

  3. Денис:

    нде, венда, убей себя чуве

  4. ffsdmad:

    Ну ик акой смысл юзать QT под виндой?
    Ни асиливаешь нормальную ос и шрефты на сайте

  5. gleb:

    Словом, kdevelop пока даст даже не сто, а все 1000 очков вперёд.

  6. Jenyay:

    2 Vladimir

    Спасибо, действительно помогло. Сейчас исправлю пост.

  7. Jenyay:

    2 ffsdmad:

    > Ну ик акой смысл юзать QT под виндой?

    Для потенциальной кроссплатформенности.

    2 Power user:

    Заметил еще и кнопочку для перехода в режим редактирования слотов. Немного непривычно, надо будет разобраться что к чему.

  8. miha-ha:

    в линухе всё работает!!! шустро, чётко, давно пора!!!

  9. Jazz:

    > Для потенциальной кроссплатформенности.

    У Вас какой-то экзотический процессор, или mingw поставить нельзя из чисто религиозных соображений? :)

  10. Jenyay:

    2 Jazz:

    А при чем тут mingw? Под виндой Qt Creator с помощью MinGW и компилит.

  11. LinuxUser:

    Венда не нужна.

  12. zavulon:

    Опять очередной обзор на примере Hello world, да еще и на винде.

    Я опробовал Qtcreator в Linux на своем текущем проекте среднего размера (около 30 исходников). Все нормально компилируется, запускается и дебаггится.

    Комментарии к обзору:
    1. Дебаггер запускается и даже нормально работает.
    2. Корявая поддержка UTF-8 в винде - это уже непростительно в конце 2008 года. Кто вам посоветовал писать на QT в винде? В следующий раз “поблагодарите” этого человека. Разрабатывать ПО нужно в Linux, а на винде только компилировать Windows-версию бинарика, ну и тестировать.

    Плюсы Qtcreator:
    1. Проект загружается с обычного .pro-файла. QtCreator никак не пытается его при этом изменить (в отличие иногда от KDevelop).
    2. Два отдельных режима перехода между объявлением и реализацией функций: просто переключение между .cpp и .h, и явный переход к реализации в .cpp.

    Из минусов по сравнению с KDevelop:
    1. Да, очень грустно, что нет табов в редакторе.
    2. Комбобокс быстрого перехода к функциям не сортирует эти функции по алфавиту. В результате невозможно найти нужную среди 50 имеющихся!
    3. Слишком много абсолютно ненужных красивостей в интерфейсе. Похож на Windows Media Player, а не на IDE.
    4. Нет нескольких полезных мелочей из-за ранней версии.
    5. Не слишком критично, но QTCreator хавает в 2 раза больше памяти по сравнению с KDevelop. Это все-таки лучше, чем Java-монстр Eclipse.

    Пока явных преимуществ по сравнению с KDevelop нет. К QtCreator стоит присмотреться после выхода финального релиза.

  13. sevenov:

    >1. Да, очень грустно, что нет табов в редакторе.
    Есть, но не совсем табы.
    1. При нажатии на “таб”, вываливается список открытых файлов.
    2. Можно сделать слева блок “Open Documents”. ( http://sevenov.info/static/uploads/qt.png )
    3. Можно переключаться Ctrl+Tab, как всегда самый лучший и быстрый вариант.

  14. sevenov:

    +
    >3. Слишком много абсолютно ненужных красивостей в интерфейсе. Похож на Windows Media Player, а не на IDE.
    А вы VS2008 видели? Или 2007. Точно не помню. А тут эти красивости как раз в тему и немного разгружает видение.

    >5. Не слишком критично, но QTCreator хавает в 2 раза больше памяти по сравнению с KDevelop. Это все-таки лучше, чем Java-монстр Eclipse.
    зачем не использовать имеющиеся ресурсы? Если, к примеру, 4Гб оперативы, зачем стараться использовать 512 и не больше и дрочить на оставшиеся 3,5Гб. :)
    При том, что ест больше памяти, очень быстро стартует и, почти буквально, летает. Ни KDevelop, ни Eclipse, ни, тем более, Visual Studio не могут быть такими шустрыми. И это при условии, что последние 2 IDE жрут побольше, чем QTC.

    >Пока явных преимуществ по сравнению с KDevelop нет.
    Один только “встроенный” дизайнер чего стоит :)

    >К QtCreator стоит присмотреться после выхода финального релиза.
    Согласен. Это еще начало, а уже, наконец-то, сделали огромнейший шаг в разработке IDE для Linux. Под винду итак есть достойные.

  15. Thorn:

    Очередное студенческое поделие за $50. С такими багами не то что на рынок - людям показывать смешно! Тут ещё столько работы, что Visual Studio со свистом обгоняет эту Qtелегу.

    > Кто вам посоветовал писать на QT в винде?

    Завулон, завулонь свой рот и не показывай дурь. Если продукт делается ПОД ВИНДУ, то и программировать (теоретически) тоже можно под виндой. А так как тролли так и не освоили программинг под Win32, то и получился отстой, билдящий другой отстой. гы :)

    > Похож на Windows Media Player, а не на IDE.

    +1000! Такой парашенский интерфейс мог придумать только отчаянный студент в ночь перед экзаменом. Собсно, трудозатраты на эту статическую лабуду составляли столько же - ночь и утро. :)

    > Так и должно быть, чтобы избавиться от крякозябр нужно настроить кодеки

    > QTextCodec *cyrillicCodec = QTextCodec::codecForName(”CP1251?);
    > QTextCodec::setCodecForTr(cyrillicCodec);
    > QTextCodec::setCodecForLocale(cyrillicCodec);
    > QTextCodec::setCodecForCStrings(cyrillicCodec)

    ыыыыыыы :)))) (Это ржут разработчики вижуалстудии.) На дворе 21 век… а в функциях main от Троллей всё ещё 80-ые годы и “правильная” настройка русских букв. БУ-ГО-ГА!!!!!! :) И это поделие Qt выдвигает на роль средства разработки!?!?!? Не смешите мою мышку! Это GWBASIC 21 века, мертвец от рождения. Закопать и не вытаскивать ещё 30 лет!

  16. rusturisto:

    Qt Designer, vim, консоль, g++, gdb, ctags, iconv
    не нужна никакая IDE
    эх, обленился народ

  17. Darked:

    2 rusturisto,
    Ручка, писчая бумага, корректор…. и не нужен никакой принтер! Из той же серии.

  18. Nomad:

    Отстаньте от альфа-версии с претензиями: интересно было бы на альфу очередной VS посмотреть… :)

    Что до русских букв, то в Qt есть метод tr(”"), походя решающий все эти проблемы. Главное же - возможнсть автоматически собрать все фразы и слова из tr-ов во всех файлах проекта. Полученный файл с помощью QT Linquist легко обрабатывает любой переводчик, не имеющий ни малейшего отношения к программированию. В результате можно в короткие сроки собрать много языковых версий приложения (Кстати, средства Qt стандартизируют подгрузку языковых модулей). Удобно. Другие так, вроде бы, не умеют.

    Относительно Qt и Windows. В конторе, где я нынче тружусь, компы работают под Linux, Windows и MacOS. Десятки баз и интерфейсов к ним, плюс интеграция с телекоммуникационным оборудованием. Не все компьютеры потянут запуск множества Java-программ (как кроссплатформенной альтернативы). Весь ИТ-отдел - 2 (два) программера и админ. Если бы не Qt, то фиг бы мы справились. А так пишем под любой системой, компилируем, как правило, без дополнительных исправлений на все платформы, получая быстрый код…

    P.S.: Специально для Thorn. Если бы не Opera, Mathematica, Nokia PC Suite и ещё десятки программ, то можно было бы действительно полагать, что Qt под win32 не используется. Алеверды назови мне хоть одну программу для MacOS или Linux написанную и откомпиленную под чудесной VS.

  19. Милан:

    Скачал, установил, собрал тестовый проектик, уютненькая среда, тулзы интегрированы и все летает, те кто сидят на эклипсе с кутишным плагином большинство перейдут на QtCreator. Похоже жаба больше не нужна, эклипс тоже. Однозначно хорошая новость.

  20. БилДвер:

    Под винду и под linux есть замечательная IDE QDevelop про нее что то ни кто ничего не сказал.

  21. Sagittarius:

    QDevelop рулит. Работает под форточкой и линуксом. В отличии от эклипса использует по минимуму ресурсов, интегрируется со всеми тулзами КуТэ, есть свои плагины…. Правда не осилил автодополнение кода в винде. С цэтагсом не дружит наверное (((

  22. Алексей:

    Слишком большая статья - не осилил. Оставлю свои впечатления. Давно занимаюсь межплатформенным программированием и вопрос IDE для меня не праздный, так как среда разработки должна нравится не только мне, но и “дедям” - молодым программистам, с которыми я веду проекты в лаборатории. В противном случае, я бы ничего не искал, а сидел бы себе в Emacs/vim и не жужжал :)

    Установка и под Windows и под Linux у меня прошла без проблем. Особенно порадовала работа в Linux. Инсталлятор под Windows содержит свою версию библиотеки и это плохо - версия успела устареть и требуется шаманское вмешательство, которое под силу не каждому новичку в Qt+MinGw+IDE.

    Надо сказать, что по сравнению с работой в Eclipse есть и преимущества и недостатки. Поэтому я по прежнему работаю и там и там. Правда теперь совсем не использую NetBeans для работы с Qt. На работе пишу проект в Qt Creator, а дома продолжаю его в Eclipse. Разумеется, как сам редактор Eclipse много лучше, чем начальная версия Qt Creator. Возможно, далее, разработчики улучшат средства редактирования кода.

    Кстати, автор сокрушался, что не может использовать Qt Creator для “чистого” программирования в MinGW. Я не понял почему, но в качестве альтернативы предлагаю посмотреть в сторону NetBeans. Использую ее для разных целей. Как платформа для “чистой” работы с Си/Си++ она замечательная. Так же хочется обратить внимание и на средства UML в NetBeans.

  23. Jenyay:

    Вот в сторону NetBeans сейчас и смотрю, правда, для Python - NetBeans IDE for Python. Пока впечатления очень приятные.

  24. EugeneVC:

    Мне не очень он понравился, пока юзаю Kdevelop. Но я думаю он через пару версий будет гуд.

Оставить комментарий

Подписаться без комментирования