如何为项目QtCreator创建子目录?


102

我想将我的Qt项目分成几个目录,因为它越来越大。但是,当我单击QtCreator中的浏览器时,没有“添加目录”,在“添加新”中也没有这样的东西。可以以某种方式做到这一点吗?


使用文件管理器创建子目录有什么问题?
Ariya Hidayat

2
我可以手动创建目录,但是在项目浏览器中看不到它们。
gruszczy

5
@Ariya您至少应该对此表示赞成,因为这是大多数IDE中都可用的功能,人们会对此提出疑问。
Piotr Dobrogost,2009年

49
出于所有应有的尊重,但Qt-Creator吸纳了可用性(关于用户界面)作为开发人员,如果您发现有人必须问如何在公共论坛中向项目添加子目录,那么您知道这有一个严重的问题。 IDE。
伊甸肖

4
@GabrielF很容易...?它是固定的...?我们为什么不能像大多数IDE一样选择“创建目录”(或本着“创建者”的精神添加“添加目录”)。这是基本功能,即使是最笨拙的编辑器也具有此功能-您可以在记事本中创建目录!做这样简单,基本的任务应该没有“方法”,这应该是显而易见的。
doc

Answers:


40

您可以使用的一种方法是为每个子目录添加一个项目包含文件。

Qt Creator以嵌套的方式在GUI中显示这些文件,并允许您向其中添加文件。

例如

在project.pro中

include(folder1/include.pri)

在folder1 / include.pri中

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

等等


我可以从IDE中嵌套吗,还是必须手动设置这些文件和目录?
gruszczy

1
我快速浏览了一下,我认为您必须手动添加包含文件,但是在将新文​​件添加到项目中时,Qt Creator将允许您将它们添加到包含文件中,而不是主项目文件中。
尼克

3
好的,希望他们会在新版本中添加此功能。
gruszczy


24

答:如何在QtCreator中为项目创建文件夹或子目录?

在QT Creator 3.1.x之前,您可以右键单击您的项目 ->“ add new ... ”,然后将路径更改为所需的文件夹。

Qt添加新...

该文件夹必须存在,Qt不会为您创建该文件夹

添加一个新类并更改默认文件夹Qt

Qt负责.pro文件中的路径。

Qt负责您.pro文件中的路径

Qt负责您.pro文件中的路径

而已 !


1
应该注意的是,当在QtCreator中使用CMake项目时,这是行不通的。
艾蒂安

@Étienne,你是对的。没用 在这种情况下我们该怎么办?
pushandpop

20

只是遇到了同样的问题,并且找到了一个相对简单的答案。

所有你需要做的移动file.cppnewFolder是文件(右键- >重命名)重命名为newFolder\file.cpp

Qt Creator会将其移动到新文件夹并自动更新.pro文件。


3
不要忘记在替换之前该文件夹应该已经存在
Anton 2014年

2
如果移动的文件在GIT的控制下,Qt创建者是否还要注意GIT的必要更改?
Silicomancer

@Silicomancer Git正在为您而不是Qt Creator处理移动的文件。除了通过Qt Creator中所述的解决方法(使用“重命名”)移动文件外,您无需执行任何其他操作。如果您只是在文件系统中移动文件,Git会识别出这一点,但是在Qt Creator的.PRO文件中不会调整文件的路径...
R Yoda

@Silicomancer是的。如果qtreacor识别到该项目已使用git版本控制,它将复制所有操作。至少包括文件创建,删除,重命名和移动。
Equilibrius

9

从1.2.90版本开始,如果仅“ 过滤树”选项未设置为“ 简化树”,则Qt Creator会将存在于项目文件夹中的子文件夹显示为项目树中的分支。


7

在QT-CREATOR中创建子目录似乎是不可能的。

请尝试以下操作:

  1. 使用文件浏览器或项目文件夹中的命令行创建多个子目录(例如net /gui /test /data / ...)!
  2. 将现有文件移动到这些新文件夹中。并在* .proj中更改其路径文件中!
  3. 从新文件夹的开头创建新的文件(通过AddNew ...)!

... QT-CREATOR仅显示包含其名称写入* .pro或* .pri文件的文件的文件夹。在根级别,QT-CREATOR区分HEADERS,SOURCES,FORMS和其他文件。在这些根文件夹中,您可以反复找到项目拥有的子文件夹。(本文未涵盖的内容将分为多个子项目。)


真正。如果在Qt Creator中查看了Qt项目,并且pri正确使用了s项目,则IDE会以很好的嵌套方式显示内容。但是,在文件系统级别,所有文件(使用subdir和创建子项目时除外)都处于同一目录层次结构中。当有人在文件浏览器(Windows Explorer,Thunar,Nautilus等)中查看项目时,这使事情变得很麻烦。如果需要适当的文件结构,则手动操作(如@CWIMMER此处建议)是唯一的方法。
rbaleksandar '16

3

只要您有一个要在其中创建的文件,就可以创建一个子目录。转到父目录,然后向其中添加文件。“浏览”位置,并在浏览窗口中创建一个新文件夹。同意,这不是很直观。



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. 重建您的项目进行测试。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.