ChatGPT解决这个技术问题 Extra ChatGPT

How to create a subdirectory for a project QtCreator?

I would like to divide my Qt project into several directories because it is growing pretty large. However, when I click on browse in QtCreator, there is no 'Add directory' and no such thing in 'Add new'. Can this be done somehow?

What is wrong with creating a sub-directory with your file manager?
I can create dirs manually, but I don't see them then in project browser.
@Ariya You should have at least up voted this as this is a feature available in most IDEs and people will be asking about it.
With all due respect but Qt-Creator sucks in usability (regarding user interface) As a developer if you see that someone has to ask how to add a subdirectory to a project in a public forum, then you know that there's a serious problem with that IDE.
@GabrielF quite easy...? it's fixed...? Why can't we just select "create directory" (or "add directory" to be in spirit of Creator) like in most IDEs. It's the basic functionality, which even most crappy editors have - you can create directory in notepad! There shouldn't be a "method" to do such simple, basic task - it should be obvious.

N
Nick

One method you could use is to add a project include file for each sub directory.

Qt Creator displays these in the GUI in a nested fashion, and allows you to add files to them.

e.g.

in project.pro

include(folder1/include.pri)

in folder1/include.pri

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

etc


Can I do this nesting from the IDE or do I have to manually set those files and dirs?
I had a quick look, and I think you have to add the include files manually, but when adding new files to a project Qt Creator will allow you to add them to an include file rather than the main project file.
OK, hopefully they will add this feature in new version.
Please consider my answer : stackoverflow.com/questions/24959959/…
E
Erowlin

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

Prior to QT Creator 3.1.x, you can right-click on your project -> "add new..." and change the path to the folder you want.

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

The folder must exists, Qt will not create it for you.

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

Qt takes care of the path in your .pro file.

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

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

That's it !


It should be noted that this won't work when using CMake projects in QtCreator.
@Étienne, you're right. It's not working. What should we do in this case?
> The folder should exist. The folder need not exist. Just click [Choose...] and use your OS file browser to create it.
A
Avidan Borisov

Just had the same issue, and found out a relatively simple answer.

All you need to do to move file.cpp to newFolder is to rename the file (right click -> Rename) to newFolder\file.cpp.

Qt Creator will move it to the new folder and automatically update the .pro file.


don't forget that the folder should already exist before the replacement
If the moved file is under GIT control, does Qt creator also take care of necessary changes in GIT?
@Silicomancer Git is handling moved files for you, not Qt Creator. There is nothing you have to do but moving the file via this described work-around (using "rename") in Qt Creator. If you were moving the file just in the file system Git would recognize this but the path of the file would not be adjusted in the Qt Creator's .PRO file...
@Silicomancer Yes. If qtreacor recognized that the project is versioned with git it will duplicate all actions. This includes, at least, file creation, deletion, rename & move.
P
Piotr Dobrogost

Starting from version 1.2.90 Qt Creator shows subfolders which exist in project's folder as branches in project's tree if only Filter tree option is not set to Simplify tree.


T
Thiem Nguyen

It only seems to be impossible to create sub-directories in QT-CREATOR.

Try the following:

Create a number of sub-directories, with a file-explorer or by command line within the project-folder (for example net/, gui/, test/, data/ ...)! Move exisiting files into these new folders. And change their paths within the *.proj file! Create new also files from beginning within the new folders (By AddNew...)!

... QT-CREATOR displays only such folders which contain files that are written with their names into the *.pro or a *.pri file. At root level QT-CREATOR distinguishes between HEADERS, SOURCES, FORMS and OTHER FILES. Within these root folders you can find project-own subfolders, repeatedly. (Not covered in this text is splitting into sub-projects.)


True. If a Qt project is viewed inside Qt Creator and pris projects are used properly the IDE displays things in a nice nested fashion. However on the filesystem level all files (except when using subdir and creating sub-projects) are in the same level of directory-hierarchy. This makes things rather cucumbersome when someone looks at the project in a file explorer (Windows Explorer, Thunar, Nautilus etc.). If proper file structure is require then doing things manually (as @CWIMMER suggests here) is the only way to go.
M
Miguel Rodriguez

When you create a new Class in your Qt-Project, you can choose the path in this wizard and hereby specify new folders like DAL, BO, UI, ...


m
michaeljt

You can create a sub-directory as long as you have a file you wish to create in it. Go to the parent directory, and "Add" a file to it. "Browse" for the location and create a new folder inside the browse window. Agreed, that is not quite intuitive.


N
Nicholas Mathern

Here's what I have done:

In the Project Folder (outside the IDE), create Directories that you'd like to put your code in and move your source files into those directories. Say you put "foo.cpp" and "foo.h" in the directory "foo". In your "*.pro" file, go to each line that references the source files you moved and add the directory name, followed by '/' in front of the source file name.

.pro before Step 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro after Step 2:

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

HEADERS += \
foo/foo.h

Rebuild your project to test.


J
James Wald

When my 'data' directory only had one sub-directory 'model' it just appeared as "data/model". After adding 'dao' as another sub-directory it displayed data with the traditional +/- manner to reveal model and dao.


l
lovethisstuff

you can add folders in your folders manager but they should contain a file, then go QT and right-click on your project then click on "add existing directory" and select your folder. if the folder is empty it's not going to show up.


it's only based on what I've done yesterday, after missing around with it.

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

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now