Russian Qt Forum
Апрель 23, 2024, 11:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: HowTo: Использование NetBeans для С++ и Qt  (Прочитано 45713 раз)
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« : Июнь 24, 2010, 23:58 »

Решил вот выложить свои заметки относительно использования Qt при программировании на С++ в IDE Netbeans. Сразу оговариваю, что не с целью сравнения с какой-либо другой платформой, а только чтоб помочь интересующимся в настройке, обзоре главных возможностей - это сэкономит им время.

Перед началом работы надо установить опции компиляторов и сборщиков, пункт Tools -> Options -> C/C++ -> Build Tools.

У меня результат установок отображён на скрине ниже:



По нему, собственно, также видно, что должно быть заранее установлено. Например у меня mingw (порт gcc под win) и msys (дополнение к mingw).

После этого можно приступать к созданию проекта. Жмём в меню на "New Project" и выбираем что именно нам нужно, например С/С++ -> C/C++ Qt Application:



Далее видим начальный стандартный шаблон кода для Qt Application (который, кстати, можно тоже изменить, но это уже относится к общим возможностям самой IDE):



Обратим внимание на отображённое слева дерево проектов. Проектов одновременно там может быть несколько - удобно, например, если вдруг надо сравнить некоторый функционал двух проектов. Для выбора конкретного (для сборки и запуска к примеру) нужно выбрать в контекстном меню (имеется ввиду правая кнопка мыши на базовом узле) проекта пункт "Set as Main Project".

Также, через это же меню мы можем добавить к проекту разные файлы для известных целей, такие как "С++ Class", "C++ Header File", файл ресурсов qrc и многие другие, в том числе и физический каталог. Последнее, для меня, например, немаловажно, т.к. очень не люблю когда все файлы в одной куче (наверно от java осталось). Пункт "New Logical Folder" позволит нам создать логический каталог, что тоже неплохо.



Заглянем что можно сделать в настройках проекта. Контекстное меню проекта -> Properties:



В пункте Build -> Qt можем установить имя, версию проекта, добавить/удалить нужные модули Qt и при этом в выпадающем списке "Build Mode" указать для какой сборки эти все настройки будут предназначены. Кстати, тип сборки можно при желании добавить и свой, или удалить имеющиеся, нажав вверху "Manage Configurations". Пункт С++ Compiler нужен для того, чтобы добавить путь к внешним ресурсам (хедерам библиотек к примеру), которые могут быть использованы в проекте. На скрине таким образом к проекту добавлен qwt:



Пункт Linker позволит добавить таким же способом .a-файл соответвующей библиотеки. Основная полезность пункта Run в том, что можно указать тип вывода - окно или консоль. Все эти настройки хранятся для release-сборки в файле проекта:

nbproject/qt-Release.pro (всем, конечно, знаком .pro-файл)

и для debug соответственно:

nbproject/qt-Debug.pro

Поэтому всё это дело можно прописать в этих файлах и вручную. Кстати, при создании, например, динамической библиотеки (New Project -> C/C++ Qt Dynamic Library) все необходимые данные будут записаны в pro-файлы сборок также автоматически.

Интересен момент создания класса С++ (конт. меню главного узла проекта -> New -> C++ Class...), т.к. можно одновременно задать нужные каталоги и др. настройки для .h и .cpp файлов в одном диалоге:



Центральная область для написания кода позволяет содержать в себе закладки и разделители, что делает одновременную работу с файлами наиболее удобной. Чтобы создать закладку, нужно просто двойным щелчком выбрать в дереве проекта нужный файл, а чтобы создать разделитель - перенести закладку, удерживая её левой кнопкой мыши в нужную область:



Ниже перечислю комбинации клавиш и другие возможности которые часто использую в работе:

- при установке каретки на названии функции или переменной она выделится во всём коде в пределах тела текущей функции/класса;

- чтобы посмотреть аргументы и возвращаемый тип функции (если забыли обратить на них внимание в процессе набора) нужно нажать комбинацию "Ctrl+space" после закрывающей скобки, его можно также использовать для просмотра всех методов классов и т.п. А вообще, "Ctrl+space" стандарт не только для Netbeans;

- чтобы скопировать строку на строку ниже (весь остальной код сдвинется): Ctrl+Shift+Down, чтобы вверх, соответственно: Ctrl+Shift+Up;

- чтобы передвинуть блок выделенного кода на расстояние одного Tab (его размер тоже можно задать в настройках IDE) влево: Shift+Alt+Left, вправо Shift+Alt+Right;

- коммен./раскоммент. выделенного кода: Ctrl+"/";

Также для Solaris, OpenSolaris и Linux доступен профайлер.

Пока всё, при обнаружении или вспоминании чего-либо интересного буду дописывать.
« Последнее редактирование: Июль 18, 2013, 15:58 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Июнь 25, 2010, 10:22 »

Да, netbeans это гуд! Хочу от себя добавить, что я тоже на нём остановился, до этого работал в разных средах (KDevelop, QtCreator, также смотрел Eclipse, CodeBlocks, QDevelop, VisualStudio). В нетбинсе нравится рефакторинг, дополнение кода и общее ощущение отлаженности среды.

Но Qt проект создаваемый из netbeans не переносим, то есть если его создал под вендой то его сложно будет открыть в NetBeans в линупсе. Поэтому я пользуюсь вариантом создания проекта по мэйкфайлу.

Плюс, qmake достаточно убог для создания крупных проектов, поэтому лучше сразу использовать cmake )
Записан

Гугль в помощь
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #2 : Июнь 25, 2010, 12:01 »

из минусов ещё можно было бы отметить что он на java (это плата за гибкий функционал), и у него проблемы с большими объёмами классов. Работать, например, с boost в нём, говорят, весьма проблематично. Может быть со временем исправят, изменят к новой версии архитектуру или ещё чего. А я пока жду профайлер под win.
« Последнее редактирование: Июнь 25, 2010, 12:18 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #3 : Июнь 25, 2010, 15:23 »

Минус не java, а тормознутость (хотя это почти синонимы  Смеющийся). На стареньких машинках в нем очень тяжело работать.

А с бустом у него все в порядке ) все отлично дополняет. И, в отличие от некоторых недо-сред, дополняет макросы. У меня проект уже содержит >700 файлов, полёт нормальный.

Цитировать
А я пока жду профайлер под win
Не дождешься, т. к. он работает только в Sun Studio при использовании Sun компилятора. В линупсе профайлера тоже нет.
Записан

Гугль в помощь
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #4 : Июнь 25, 2010, 15:33 »

В линупсе профайлера тоже нет.
Как это нет, если в статье написано что есть?
Записан

kubuntu/Win7/x64/NetBeans
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #5 : Июнь 25, 2010, 22:06 »

Почему я тогда его не вижу )
Записан

Гугль в помощь
Blackwanderer
Гость
« Ответ #6 : Июнь 26, 2010, 09:48 »

Решил внести свою лепту... Вот небольшая заметка об отладке Qt программ в NetBeans, а именно просмотре содержимого Qt классов а-ля QtCreator. Конечно получается не столь удобно и не столь красиво, но все-таки лучше чем ничего.
Отладка Qt программ в NetBeans
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #7 : Июнь 26, 2010, 11:08 »

Спс, полезная статья
Записан

Гугль в помощь
ieroglif
Гость
« Ответ #8 : Июнь 26, 2010, 12:51 »

честно говоря, почитав, я пока так и не понял смысл  Грустный
а чем QtCreator не устраивает? пишу в нём и под линухом и под вендой - как-то проблем не возникало никогда..
или это просто собрались любители NetBeans и не посвящённым тут ловить нечего? Улыбающийся
В общем, можно объяснить - чем эта среда лучше чем QtCreator? скачать, увы, не могу - канал слишком уж узкий.. Грустный
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #9 : Июнь 26, 2010, 13:28 »

а чем QtCreator не устраивает?
два слова - очень многим. Это становится понятным только после использования netbeans, остальное холивар.
Записан

kubuntu/Win7/x64/NetBeans
ieroglif
Гость
« Ответ #10 : Июнь 26, 2010, 15:06 »

а чем QtCreator не устраивает?
два слова - очень многим. Это становится понятным только после использования netbeans, остальное холивар.
понял, спасибо Улыбающийся, буду качать, смотреть.
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #11 : Июнь 26, 2010, 16:30 »

понял, спасибо Улыбающийся, буду качать, смотреть.
это не значит, что netbeans лучше creator'а, просто чтобы выбрать надо смотреть и оценивать самому. Но лично я, после того как взвесил все "за" и "против" остановился на netbeans.
Например в creator'e мне понравилась скорость и дебагер. Больше, в принципе, ничего.
« Последнее редактирование: Июнь 26, 2010, 16:34 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #12 : Июнь 27, 2010, 18:44 »

Например в creator'e мне понравилась скорость и дебагер.
Как-то у меня слова "QtCreator, дебагер и скорость" не сильно сочетаются. То есть в NetBeans с этим еще хуже? А с cdb оно дружит?
Записан
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #13 : Июнь 28, 2010, 21:56 »

При дебаге многопоточной проги у меня были какие-то странные зависания, без потоков всё ок.
Databases поддерживает.
Записан

kubuntu/Win7/x64/NetBeans
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #14 : Июнь 29, 2010, 11:23 »

В линупсе профайлера тоже нет.
Как это нет, если в статье написано что есть?

Да, немножко не так выразился )

Есть при условии что используешь sun studio tools и их компилятор вместо gcc. Только я не совсем представляю как это будет работать %) надо ведь все c++ либы пересобрать включая qt.. короче геморрой.

Лучше, имхо, использовать какой-нибудь valgrind/kcachegrind...

Цитировать
Как-то у меня слова "QtCreator, дебагер и скорость" не сильно сочетаются. То есть в NetBeans с этим еще хуже? А с cdb оно дружит?

Интерфейс QtCreator работает ощутимо быстрее. Дебаггер не скажу что намного лучше (лучше только показывает кутэшные классы). С cdb, похоже, не дружит, только gdb или sun studio tools.

Цитировать
При дебаге многопоточной проги у меня были какие-то странные зависания, без потоков всё ок.

Виснет сам gdb, причем он виснет как в netbeans, так и в qtcreator и kdevelop (загрузка на одно ядро 100%). Я обновил gdb до последней версии 7.1 вроде виснуть стало меньше.
Записан

Гугль в помощь
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.057 секунд. Запросов: 23.