【问题标题】:How to create a subdirectory for a project QtCreator?如何为项目 QtCreator 创建子目录?
【发布时间】:2010-11-13 16:23:24
【问题描述】:

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

【问题讨论】:

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

标签: qt qt-creator qmake


【解决方案1】:

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

【讨论】:

  • 它只是基于我昨天所做的,在错过了它之后。
【解决方案2】:

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

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

文件夹必须存在,Qt 不会为你创建。

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

就是这样!

【讨论】:

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

这是我所做的:

  1. 在项目文件夹(IDE 外部)中,创建您希望将代码放入的目录并将源文件移动到这些目录中。

    • 假设您将“foo.cpp”和“foo.h”放在目录“foo”中。
  2. 在您的“*.pro”文件中,转到引用您移动的源文件的每一行并添加目录名,然后在源文件名前加上“/”。

第2步之前的.pro:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

第2步后的.pro:

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

HEADERS += \
foo/foo.h
  1. 重建您的项目以进行测试。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      刚遇到同样的问题,找到了一个比较简单的答案。

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

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

      【讨论】:

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

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

      【讨论】:

        【解决方案7】:

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

        尝试以下方法:

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

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

        【讨论】:

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

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

        【讨论】:

          【解决方案9】:

          从 1.2.90 版开始,如果只有 Filter tree 选项未设置为 Simplify tree,Qt Creator 会将项目文件夹中存在的子文件夹显示为项目树中的分支。

          【讨论】:

            【解决方案10】:

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

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

            例如

            在 project.pro 中

            include(folder1/include.pri)
            

            在文件夹 1/include.pri 中

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

            【讨论】:

            • 我可以在 IDE 中进行嵌套还是必须手动设置这些文件和目录?
            • 我快速浏览了一下,我认为您必须手动添加包含文件,但是当向项目添加新文件时,Qt Creator 将允许您将它们添加到包含文件而不是主文件项目文件。
            • 好的,希望他们会在新版本中添加此功能。
            猜你喜欢
            • 1970-01-01
            • 2014-09-17
            • 1970-01-01
            • 2010-10-20
            • 1970-01-01
            • 1970-01-01
            • 2015-04-30
            • 1970-01-01
            • 2011-10-23
            相关资源
            最近更新 更多