Comment créer un sous-répertoire pour un projet QtCreator?

102

Je voudrais diviser mon projet Qt en plusieurs répertoires car il prend de l'ampleur. Cependant, lorsque je clique sur parcourir dans QtCreator, il n'y a pas de «Ajouter un répertoire» et rien de tel dans «Ajouter nouveau». Cela peut-il être fait d'une manière ou d'une autre?

gruszczy
la source
Quel est le problème avec la création d'un sous-répertoire avec votre gestionnaire de fichiers?
Ariya Hidayat
2
Je peux créer des répertoires manuellement, mais je ne les vois pas dans le navigateur de projet.
gruszczy
5
@Ariya Vous devriez avoir au moins voté à la hausse car c'est une fonctionnalité disponible dans la plupart des IDE et les gens vous poseront des questions à ce sujet.
Piotr Dobrogost
49
Avec tout le respect que je vous dois, mais Qt-Creator aspire à la convivialité (concernant l'interface utilisateur) En tant que développeur, si vous voyez que quelqu'un doit demander comment ajouter un sous-répertoire à un projet dans un forum public, vous savez qu'il y a un sérieux problème avec cela IDE.
Edenshaw
4
@GabrielF assez facile ...? c'est réparé...? Pourquoi ne pouvons-nous pas simplement sélectionner "créer un répertoire" (ou "ajouter un répertoire" pour être dans l'esprit de Creator) comme dans la plupart des IDE. C'est la fonctionnalité de base, que même la plupart des éditeurs de merde ont - vous pouvez créer un répertoire dans le bloc-notes! Il ne devrait pas y avoir de «méthode» pour faire une tâche aussi simple et basique - cela devrait être évident.
doc

Réponses:

40

Une méthode que vous pouvez utiliser consiste à ajouter un fichier d'inclusion de projet pour chaque sous-répertoire.

Qt Creator les affiche dans l'interface graphique de manière imbriquée et vous permet d'y ajouter des fichiers.

par exemple

dans project.pro

include(folder1/include.pri)

dans dossier1 / include.pri

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

etc

pseudo
la source
Puis-je faire cette imbrication à partir de l'EDI ou dois-je définir manuellement ces fichiers et répertoires?
gruszczy
1
J'ai jeté un coup d'œil rapide et je pense que vous devez ajouter les fichiers d'inclusion manuellement, mais lors de l'ajout de nouveaux fichiers à un projet, Qt Creator vous permettra de les ajouter à un fichier d'inclusion plutôt qu'au fichier de projet principal.
Nick
3
OK, j'espère qu'ils ajouteront cette fonctionnalité dans la nouvelle version.
gruszczy
2
Veuillez considérer ma réponse: stackoverflow.com/questions/24959959/…
Erowlin
24

Réponse: Comment créer un dossier ou un sous-répertoire pour un projet dans QtCreator?

Avant QT Creator 3.1.x, vous pouvez cliquer avec le bouton droit de la souris sur votre projet -> " ajouter nouveau ... " et changer le chemin du dossier souhaité.

Qt ajouter un nouveau ...

Le dossier doit exister , Qt ne le créera pas pour vous.

Ajouter une nouvelle classe et changer le dossier par défaut Qt

Qt s'occupe du chemin dans votre fichier .pro.

Qt s'occupe du chemin dans votre fichier .pro

Qt s'occupe du chemin dans votre fichier .pro

C'est tout !

Erowlin
la source
1
Il convient de noter que cela ne fonctionnera pas lors de l'utilisation de projets CMake dans QtCreator.
Étienne
@ Étienne, tu as raison. Ça ne fonctionne pas. Que devons-nous faire dans ce cas?
pushandpop
20

J'ai juste eu le même problème et j'ai trouvé une réponse relativement simple.

Tout ce que vous devez faire pour passer file.cppà newFolderest de renommer le fichier (clic droit -> Renommer) ànewFolder\file.cpp .

Qt Creator le déplacera dans le nouveau dossier et mettra automatiquement à jour le .profichier.

Avidan Borisov
la source
3
n'oubliez pas que le dossier devrait déjà exister avant le remplacement
Anton
2
Si le fichier déplacé est sous contrôle GIT, Qt Creator prend-il également en charge les modifications nécessaires dans GIT?
Silicomancer
@Silicomancer Git gère les fichiers déplacés pour vous, pas pour Qt Creator. Vous n'avez rien d'autre à faire que de déplacer le fichier via cette solution de contournement décrite (en utilisant "renommer") dans Qt Creator. Si vous déplaçiez le fichier uniquement dans le système de fichiers, Git le reconnaîtrait mais le chemin du fichier ne serait pas ajusté dans le .PROfichier de Qt Creator ...
R Yoda
@Silicomancer Oui. Si qtreacor reconnaît que le projet est versionné avec git, il dupliquera toutes les actions. Cela inclut, au moins, la création, la suppression, le changement de nom et le déplacement de fichiers.
Equilibrius
9

À partir de la version 1.2.90, Qt Creator affiche les sous-dossiers qui existent dans le dossier du projet sous forme de branches dans l'arborescence du projet si seule l' option Filtrer l'arborescence n'est pas définie sur Simplifier l'arborescence .

Piotr Dobrogost
la source
7

Il semble seulement impossible de créer des sous-répertoires dans QT-CREATOR.

Essayez ce qui suit:

  1. Créez un certain nombre de sous-répertoires, avec un explorateur de fichiers ou par ligne de commande dans le dossier du projet (par exemple net / , gui / , test / , data / ...)!
  2. Déplacez les fichiers existants dans ces nouveaux dossiers. Et changez leurs chemins dans le * .proj fichier !
  3. Créez également de nouveaux fichiers depuis le début dans les nouveaux dossiers (Par AddNew ... )!

... QT-CREATOR affiche uniquement les dossiers qui contiennent des fichiers écrits avec leurs noms dans le fichier * .pro ou * .pri. Au niveau racine, QT-CREATOR fait la distinction entre EN-TÊTES, SOURCES, FORMULAIRES et AUTRES FICHIERS. Dans ces dossiers racine, vous pouvez trouver à plusieurs reprises des sous-dossiers propres au projet. (Non couvert dans ce texte est la division en sous-projets.)

CWIMMER
la source
Vrai. Si un projet Qt est visualisé dans Qt Creator et que priles projets s sont utilisés correctement, l'EDI affiche les choses de manière bien imbriquée. Cependant, au niveau du système de fichiers, tous les fichiers (sauf lors de l'utilisation subdiret de la création de sous-projets) sont dans le même niveau de hiérarchie de répertoires. Cela rend les choses plutôt compliquées lorsque quelqu'un regarde le projet dans un explorateur de fichiers (Windows Explorer, Thunar, Nautilus etc.). Si une structure de fichier appropriée est nécessaire, faire les choses manuellement (comme @CWIMMER le suggère ici) est la seule façon de procéder.
rbaleksandar
3

Vous pouvez créer un sous-répertoire tant que vous avez un fichier que vous souhaitez créer. Allez dans le répertoire parent et "Ajoutez" un fichier à celui-ci. "Parcourir" pour l'emplacement et créer un nouveau dossier dans la fenêtre de navigation. D'accord, ce n'est pas tout à fait intuitif.

Michaeljt
la source
3

Lorsque vous créez une nouvelle classe dans votre Qt-Project, vous pouvez choisir le chemin dans cet assistant et spécifier ici de nouveaux dossiers tels que DAL, BO, UI, ...

Miguel Rodriguez
la source
0

Quand mon répertoire 'data' n'avait qu'un seul sous-répertoire 'model', il apparaissait juste comme "data / model". Après avoir ajouté «dao» comme un autre sous-répertoire, il a affiché les données avec la manière traditionnelle +/- pour révéler le modèle et le dao.

James Wald
la source
0

Voici ce que j'ai fait:

  1. Dans le dossier de projet (en dehors de l'EDI), créez des répertoires dans lesquels vous souhaitez insérer votre code et déplacez vos fichiers source dans ces répertoires.

    • Disons que vous mettez "foo.cpp" et "foo.h" dans le répertoire "foo".
  2. Dans votre fichier "* .pro", accédez à chaque ligne qui fait référence aux fichiers source que vous avez déplacés et ajoutez le nom du répertoire, suivi de "/" devant le nom du fichier source.

.pro avant l'étape 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro après l'étape 2:

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

HEADERS += \
foo/foo.h
  1. Reconstruisez votre projet pour le tester.
Nicolas Mathern
la source