ChatGPT解决这个技术问题 Extra ChatGPT

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

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

使用文件管理器创建子目录有什么问题?
我可以手动创建目录,但我在项目浏览器中看不到它们。
@Ariya您至少应该对此投赞成票,因为这是大多数IDE中都提供的功能,人们会询问它。
恕我直言,但 Qt-Creator 在可用性方面很糟糕(关于用户界面) 作为开发人员,如果您看到有人必须在公共论坛上询问如何将子目录添加到项目中,那么您就知道这是一个严重的问题IDE。
@GabrielF 很容易......?修好了……?为什么我们不能像大多数 IDE 一样只选择“创建目录”(或“添加目录”以符合 Creator 的精神)。这是基本功能,即使是大多数蹩脚的编辑器也有——您可以在记事本中创建目录!不应该有一种“方法”来完成如此简单的基本任务——它应该是显而易见的。

N
Nick

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

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

例如

在项目.pro

include(folder1/include.pri)

在文件夹 1/include.pri 中

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

ETC


我可以从 IDE 进行嵌套,还是必须手动设置这些文件和目录?
我快速浏览了一下,我认为您必须手动添加包含文件,但是当向项目添加新文件时,Qt Creator 将允许您将它们添加到包含文件而不是主项目文件中。
好的,希望他们会在新版本中添加此功能。
E
Erowlin

答案:How to create a folder or a subdirectory for a project in QtCreator?

在 QT Creator 3.1.x 之前,您可以右键单击您的项目 ->“添加新...”并将路径更改为您想要的文件夹。

https://i.stack.imgur.com/EDmhK.png

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

https://i.stack.imgur.com/PKWBD.png

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

https://i.stack.imgur.com/QqH5f.png

https://i.stack.imgur.com/MM86Z.png

而已 !


需要注意的是,这在 QtCreator 中使用 CMake 项目时不起作用。
@Étienne,你是对的。它不工作。在这种情况下我们应该怎么做?
> The folder should exist. 文件夹不必存在。只需单击 [Choose...] 并使用您的 OS 文件浏览器来创建它。
A
Avidan Borisov

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

file.cpp 移至 newFolder 所需要做的就是将文件重命名(右键单击 -> 重命名)为 newFolder\file.cpp

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


不要忘记该文件夹在替换之前应该已经存在
如果移动的文件受 GIT 控制,Qt 创建者是否也会处理 GIT 中的必要更改?
@Silicomancer Git 正在为您处理移动的文件,而不是 Qt Creator。除了通过 Qt Creator 中描述的解决方法(使用“重命名”)移动文件外,您无需做任何事情。如果您只是在文件系统中移动文件,Git 会识别这一点,但不会在 Qt Creator 的 .PRO 文件中调整文件的路径......
@Silicomancer 是的。如果 qtreacor 识别出项目使用 git 进行版本控制,它将复制所有操作。这至少包括文件创建、删除、重命名和移动。
P
Piotr Dobrogost

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


T
Thiem Nguyen

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

尝试以下操作:

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

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


真的。如果在 Qt Creator 中查看 Qt 项目并且pri的项目被正确使用,则 IDE 会以良好的嵌套方式显示内容。但是,在文件系统级别上,所有文件(使用 subdir 和创建子项目时除外)都位于目录层次结构的同一级别。当有人在文件资源管理器(Windows Explorer、Thunar、Nautilus 等)中查看项目时,这会使事情变得相当麻烦。如果需要正确的文件结构,那么手动操作(正如@CWIMMER 在这里建议的那样)是唯一的方法。
M
Miguel Rodriguez

当您在 Qt 项目中创建新类时,您可以在此向导中选择路径,并在此指定新文件夹,如 DAL、BO、UI...


m
michaeljt

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


N
Nicholas Mathern

这是我所做的:

在项目文件夹(IDE 外部)中,创建您希望将代码放入的目录并将源文件移动到这些目录中。假设您将“foo.cpp”和“foo.h”放在目录“foo”中。在您的“*.pro”文件中,转到引用您移动的源文件的每一行并添加目录名,然后在源文件名前加上“/”。

.pro 在第 2 步之前:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

第 2 步之后的 .pro:

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

HEADERS += \
foo/foo.h

重建您的项目以进行测试。


J
James Wald

当我的“数据”目录只有一个子目录“模型”时,它只是显示为“数据/模型”。将“dao”添加为另一个子目录后,它以传统的 +/- 方式显示数据以显示模型和 dao。


l
lovethisstuff

您可以在文件夹管理器中添加文件夹,但它们应该包含一个文件,然后转到 QT 并右键单击您的项目,然后单击“添加现有目录”并选择您的文件夹。如果文件夹为空,则不会显示。


它只是基于我昨天所做的,在错过它之后。

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅