Как создать подкаталог для проекта QtCreator?

102

Я хотел бы разделить свой проект Qt на несколько каталогов, потому что он становится довольно большим. Однако, когда я нажимаю «Обзор» в QtCreator, нет «Добавить каталог» и ничего подобного в «Добавить новый». Можно как-то это сделать?

Gruszczy
источник
Что не так с созданием подкаталога с вашим файловым менеджером?
Ария Хидаят,
2
Я могу создавать каталоги вручную, но тогда я их не вижу в браузере проекта.
gruszczy
5
@Ariya Вы должны хотя бы проголосовать за это, поскольку это функция доступна в большинстве IDE, и люди будут спрашивать об этом.
Piotr Dobrogost
50
При всем уважении, но Qt-Creator отстой в удобстве использования (в отношении пользовательского интерфейса). Как разработчик, если вы видите, что кто-то должен спросить, как добавить подкаталог в проект на общедоступном форуме, то вы знаете, что с этим есть серьезная проблема. IDE.
Edenshaw
4
@GabrielF довольно легко ...? это фиксированная...? Почему мы не можем просто выбрать «создать каталог» (или «добавить каталог» в духе Creator), как в большинстве IDE. Это базовая функциональность, которая есть даже у большинства дрянных редакторов - вы можете создать каталог в блокноте! Не должно быть «метода» для выполнения такой простой, базовой задачи - он должен быть очевиден.
doc

Ответы:

40

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

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

например

в project.pro

include(folder1/include.pri)

в папке1 / include.pri

HEADERS += MyClass.h
SOURCES += MyClass.cpp

и т.д

Ник
источник
Могу ли я сделать это вложение из среды IDE или мне придется вручную устанавливать эти файлы и каталоги?
gruszczy
1
Я быстро просмотрел и думаю, что вам нужно добавить включаемые файлы вручную, но при добавлении новых файлов в проект Qt Creator позволит вам добавить их во включаемый файл, а не в основной файл проекта.
Ник,
3
Хорошо, надеюсь, они добавят эту функцию в новую версию.
gruszczy
2
Пожалуйста, примите во внимание мой ответ: stackoverflow.com/questions/24959959/…
Erowlin
24

Ответ: Как создать папку или подкаталог для проекта в QtCreator?

До QT Creator 3.1.x вы можете щелкнуть правой кнопкой мыши свой проект -> « добавить новый ... » и изменить путь к нужной папке.

Qt добавить новый ...

Папка должна существовать , Qt не создаст ее за вас.

Добавьте новый класс и измените папку по умолчанию Qt

Qt позаботится о пути в вашем файле .pro.

Qt позаботится о пути в вашем файле .pro

Qt позаботится о пути в вашем файле .pro

Это оно !

Erowlin
источник
1
Следует отметить, что это не сработает при использовании проектов CMake в QtCreator.
Этьен,
@ Этьен, ты прав. Это не работает. Что делать в этом случае?
pushandpop
20

У меня была такая же проблема, и я нашел относительно простой ответ.

Все , что вам нужно сделать , чтобы перейти file.cppна newFolderэто переименовать файл (правой кнопкой -> Переименовать) в newFolder\file.cpp.

Qt Creator переместит его в новую папку и автоматически обновит .proфайл.

Авидан Борисов
источник
3
не забывайте, что папка уже должна существовать до замены
Антон
2
Если перемещенный файл находится под контролем GIT, позаботится ли создатель Qt о необходимых изменениях в GIT?
Silicomancer
@Silicomancer Git обрабатывает перемещенные файлы за вас, а не Qt Creator. Вам ничего не нужно делать, кроме как переместить файл с помощью описанного обходного пути (с использованием «переименования») в Qt Creator. Если бы вы перемещали файл только в файловой системе, Git распознал бы это, но путь к файлу не был бы скорректирован в .PROфайле Qt Creator ...
Р Йода
@Silicomancer Да. Если qtreacor распознает, что проект версируется с помощью git, он дублирует все действия. Это включает как минимум создание, удаление, переименование и перемещение файлов.
Equilibrius
9

Начиная с версии 1.2.90 Qt Creator показывает вложенные папки, которые существуют в папке проекта, как ветви в дереве проекта, если только для параметра Дерево фильтра не установлено значение Упростить дерево .

Петр Доброгост
источник
7

Только кажется невозможным создать подкаталоги в QT-CREATOR.

Попробуйте следующее:

  1. Создайте несколько подкаталогов с помощью файлового проводника или командной строки в папке проекта (например, net / , gui / , test / , data / ...)!
  2. Переместите существующие файлы в эти новые папки. И измените их пути в файле * .proj !
  3. Создавайте новые файлы также с самого начала в новых папках (By AddNew ... )!

... QT-CREATOR отображает только такие папки, которые содержат файлы, записанные со своими именами в файл * .pro или * .pri. На корневом уровне QT-CREATOR различает ЗАГОЛОВКИ, ИСТОЧНИКИ, ФОРМЫ и ДРУГИЕ ФАЙЛЫ. Внутри этих корневых папок вы можете неоднократно находить собственные подпапки проекта. (В этом тексте не рассматривается разделение на подпроекты.)

CWIMMER
источник
Правда. Если проект Qt просматривается внутри Qt Creator и priпроекты используются должным образом, среда IDE отображает вещи в красивой вложенной форме. Однако на уровне файловой системы все файлы (кроме случаев использования subdirи создания подпроектов) находятся на одном уровне иерархии каталогов. Это делает вещи довольно громоздкими, когда кто-то просматривает проект в проводнике файлов (Windows Explorer, Thunar, Nautilus и т. Д.). Если требуется правильная файловая структура, то выполнение действий вручную (как предлагает здесь @CWIMMER) - единственный способ.
rbaleksandar 02
3

Вы можете создать подкаталог, если у вас есть файл, который вы хотите создать в нем. Перейдите в родительский каталог и «Добавить» в него файл. «Найдите» нужное место и создайте новую папку в окне просмотра. Согласитесь, это не совсем интуитивно понятно.

michaeljt
источник
3

Когда вы создаете новый класс в своем Qt-Project, вы можете выбрать путь в этом мастере и тем самым указать новые папки, такие как DAL, BO, UI, ...

Мигель Родригес
источник
0

Когда в моем каталоге «данные» был только один подкаталог «модель», он просто отображался как «данные / модель». После добавления «dao» в качестве другого подкаталога он отображал данные в традиционном режиме +/-, чтобы показать модель и dao.

Джеймс Уолд
источник
0

Вот что я сделал:

  1. В папке проекта (вне среды IDE) создайте каталоги, в которые вы хотите поместить свой код, и переместите исходные файлы в эти каталоги.

    • Допустим, вы поместили «foo.cpp» и «foo.h» в каталог «foo».
  2. В вашем файле «* .pro» перейдите к каждой строке, которая ссылается на исходные файлы, которые вы переместили, и добавьте имя каталога, за которым следует '/' перед именем исходного файла.

.pro перед Шагом 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro после шага 2:

SOURCES += main.cpp \ 
foo/foo.cpp

HEADERS += \
foo/foo.h
  1. Перестройте свой проект для тестирования.
Николас Мазерн
источник