Qt Creator. Интегрированная среда для Qt
На днях вышла предварительная версия IDE Qt Creator, предназначенная для разработки программ с помощью библиотеки Qt, в которой есть и отладчик, и дизайнер интерфейса, и удобный редактор кода с различными подсказками. Я не мог пройти мимо и не поковыряться в новой среде. Заодно таким образом неожиданно появился еще один повод поиграть с Qt, а то я давно хожу вокруг да около этой библиотеки, изредка пробую новые версии, но для реальной работы пока не использовал.
Установка
Первая проблема с Qt Creator появилась еще во время установки, когда инсталлятор сообщил об ошибке при копировании файла lib\Nokia\BinEditor.dll.
Установить IDE удалось только после того, как инсталятору сказал не устанавливать Qt Development Libraries, а сам Qt скачал и поставил отдельно.
В версии под Windows прилагается компилятор MinGW, поэтому никакие дополнительные компиляторы не нужны.
Редактор кода Qt Creator
Первое, что бросается в глаза при запуске среды - симпатичный внешний вид в серых тонах. Вообще внешне Qt Creator выглядит как-то непривычно для IDE, которые обычно оформлены более строго или, я бы сказал, скорее аскетично. Здесь нет привычной панели инструментов, а отдельные инструменты представляют собой не перетаскиваемые окна, которые “прилипают” к краям или присоединяются к другим окнам, а являются частями главного окна, положение которых не меняется. Это скорее минус, но даже при таком положении дел интерфейс довольно удобный. Сама среда разработки довольно быстро запускается и шустро работает, что не может не радовать.
Кнопки в левой части окна открывают такие элементы среды разработки как настройки компиляции, последние открытые файлы, переключение в режим отладчика и открытие справки.
Редактор кода показался очень удобным. Во-первых, в нем есть подсказки по членам и методам классов, которые появляются после ввода точки или “->”.
Кстати, подсказки по методам классов из 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 МБ.
Похожие записи



















>А если перекодировать исходник в UTF-8 (и использовать функцию trUtf8), то в окне текст станет читаемым, а в редакторе нет:
Чуда юда рыба кит, а не обзорщик из тебя. Так и должно быть, чтобы избавиться от крякозябр нужно настроить кодеки
QTextCodec *cyrillicCodec = QTextCodec::codecForName(”CP1251″);
QTextCodec::setCodecForTr(cyrillicCodec);
QTextCodec::setCodecForLocale(cyrillicCodec);
QTextCodec::setCodecForCStrings(cyrillicCodec);
в начале функции main, после создании экземпляра объекта QApplication и все будет зашибись с отображением русских букв.
2 ноября 2008, 12:48 дпнажимаешь F4 и привязываешь сигналы к слотам в дизайнере.
2 ноября 2008, 12:58 дпF3 возвращаешься к редактированию Widgets.
Смотрите шоткаты в дизайнере!
нде, венда, убей себя чуве
2 ноября 2008, 1:03 дпffsdmad:
Ну ик акой смысл юзать QT под виндой?
2 ноября 2008, 3:34 дпНи асиливаешь нормальную ос и шрефты на сайте
Словом, kdevelop пока даст даже не сто, а все 1000 очков вперёд.
2 ноября 2008, 6:59 дп2 Vladimir
Спасибо, действительно помогло. Сейчас исправлю пост.
2 ноября 2008, 10:09 дп2 ffsdmad:
> Ну ик акой смысл юзать QT под виндой?
Для потенциальной кроссплатформенности.
2 Power user:
Заметил еще и кнопочку для перехода в режим редактирования слотов. Немного непривычно, надо будет разобраться что к чему.
2 ноября 2008, 10:17 дпв линухе всё работает!!! шустро, чётко, давно пора!!!
2 ноября 2008, 10:27 дп> Для потенциальной кроссплатформенности.
У Вас какой-то экзотический процессор, или mingw поставить нельзя из чисто религиозных соображений?
2 ноября 2008, 12:06 пп2 Jazz:
А при чем тут mingw? Под виндой Qt Creator с помощью MinGW и компилит.
2 ноября 2008, 12:15 ппВенда не нужна.
2 ноября 2008, 1:41 ппОпять очередной обзор на примере 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 стоит присмотреться после выхода финального релиза.
2 ноября 2008, 4:14 пп>1. Да, очень грустно, что нет табов в редакторе.
3 ноября 2008, 11:52 дпЕсть, но не совсем табы.
1. При нажатии на “таб”, вываливается список открытых файлов.
2. Можно сделать слева блок “Open Documents”. ( http://sevenov.info/static/uploads/qt.png )
3. Можно переключаться Ctrl+Tab, как всегда самый лучший и быстрый вариант.
+
>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 стоит присмотреться после выхода финального релиза.
3 ноября 2008, 12:00 ппСогласен. Это еще начало, а уже, наконец-то, сделали огромнейший шаг в разработке IDE для Linux. Под винду итак есть достойные.
Очередное студенческое поделие за $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 лет!
3 ноября 2008, 12:16 ппQt Designer, vim, консоль, g++, gdb, ctags, iconv
4 ноября 2008, 9:07 ппне нужна никакая IDE
эх, обленился народ
2 rusturisto,
5 ноября 2008, 8:02 дпРучка, писчая бумага, корректор…. и не нужен никакой принтер! Из той же серии.
Отстаньте от альфа-версии с претензиями: интересно было бы на альфу очередной 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.
9 ноября 2008, 12:45 дпСкачал, установил, собрал тестовый проектик, уютненькая среда, тулзы интегрированы и все летает, те кто сидят на эклипсе с кутишным плагином большинство перейдут на QtCreator. Похоже жаба больше не нужна, эклипс тоже. Однозначно хорошая новость.
10 ноября 2008, 12:22 ппПод винду и под linux есть замечательная IDE QDevelop про нее что то ни кто ничего не сказал.
12 ноября 2008, 2:03 ппQDevelop рулит. Работает под форточкой и линуксом. В отличии от эклипса использует по минимуму ресурсов, интегрируется со всеми тулзами КуТэ, есть свои плагины…. Правда не осилил автодополнение кода в винде. С цэтагсом не дружит наверное (((
12 ноября 2008, 2:40 ппСлишком большая статья - не осилил. Оставлю свои впечатления. Давно занимаюсь межплатформенным программированием и вопрос 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.
25 ноября 2008, 11:20 ппВот в сторону NetBeans сейчас и смотрю, правда, для Python - NetBeans IDE for Python. Пока впечатления очень приятные.
26 ноября 2008, 10:01 дпМне не очень он понравился, пока юзаю Kdevelop. Но я думаю он через пару версий будет гуд.
21 декабря 2008, 12:03 пп