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


102

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


Что не так с созданием подкаталога с вашим файловым менеджером?
Ария Хидаят,

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

Это оно !


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 различает ЗАГОЛОВКИ, ИСТОЧНИКИ, ФОРМЫ и ДРУГИЕ ФАЙЛЫ. Внутри этих корневых папок вы можете неоднократно находить собственные подпапки проекта. (В этом тексте не рассматривается разделение на подпроекты.)


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

3

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


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. Перестройте свой проект для тестирования.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.