web-dev-qa-db-ger.com

Wie erstellt man ein Unterverzeichnis für ein Projekt QtCreator?

Ich möchte mein Qt-Projekt in mehrere Verzeichnisse unterteilen, da es ziemlich groß wird. Wenn ich jedoch in QtCreator auf Durchsuchen klicke, gibt es kein 'Verzeichnis hinzufügen' und keine solche Sache in 'Neu hinzufügen'. Kann das irgendwie gemacht werden?

93
gruszczy

Eine Methode, die Sie verwenden könnten, ist das Hinzufügen einer Projekt-Include-Datei für jedes Unterverzeichnis.

Qt Creator zeigt diese in der GUI verschachtelt an und ermöglicht das Hinzufügen von Dateien.

z.B.

in project.pro

include(folder1/include.pri)

in ordner1/include.pri

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

usw

36
Nick

Antwort: Wie erstellt man einen Ordner oder ein Unterverzeichnis für ein Projekt in QtCreator?

Vor QT Creator 3.1.x können Sie mit mit der rechten Maustaste auf Ihr Projekt -> "add new ..." klicken und den Pfad zum gewünschten Ordner ändern. 

Qt add new...

Achten Sie darauf, dass der Ordner vorhanden sein muss. Qt erstellt ihn nicht für Sie. 

Add a new class and change the default folder Qt

Qt kümmert sich um den Pfad in Ihrer .pro-Datei.

Qt takes care of the path in your .pro file

Qt takes care of the path in your .pro file

Das ist es !

21
Erowlin

Hatte gerade das gleiche Problem und fand eine relativ einfache Antwort.

Um file.cpp in newFolder zu verschieben, müssen Sie nur die Datei umbenennen (Rechtsklick -> Umbenennen) in newFolder\file.cpp.

Qt Creator verschiebt es in den neuen Ordner und aktualisiert automatisch die .pro-Datei.

14
Avidan Borisov

Ab Version 1.2.90 zeigt Qt Creator Unterordner, die im Projektordner vorhanden sind, als Verzweigungen im Projektbaum, wenn nur die Option Filterstruktur auf Vereinfachte Struktur gesetzt ist.

9
Piotr Dobrogost

Das Erstellen von Unterverzeichnissen in QT-CREATOR scheint nur unmöglich zu sein.  

Versuche Folgendes:

  1. Erstellen Sie eine Reihe von Unterverzeichnissen mit einem Datei-Explorer oder über die Befehlszeile im Projektordner (z. B. net/, gui/, test/, data/ ...)!
  2. Verschieben Sie vorhandene Dateien in diese neuen Ordner. Und ändern Sie ihre Pfade in der Datei * .proj!
  3. Erstellen Sie auch neue Dateien von Anfang an in den neuen Ordnern (By AddNew ...)!

... QT-CREATOR zeigt nur solche Ordner an, die Dateien enthalten, deren Namen in die * .pro- oder eine * .pri-Datei geschrieben sind. Auf der Basisebene unterscheidet QT-CREATOR zwischen HEADERS, SOURCES, FORMS und ANDEREN DATEIEN. In diesen Stammordnern finden Sie wiederholt projekteigene Unterordner. (Nicht in diesem Text enthalten ist eine Aufteilung in Unterprojekte.)

7
CWIMMER

Sie können ein Unterverzeichnis erstellen, solange Sie eine Datei haben, die Sie erstellen möchten. Wechseln Sie in das übergeordnete Verzeichnis und fügen Sie ihm eine Datei hinzu. Suchen Sie nach dem Ort und erstellen Sie einen neuen Ordner im Suchfenster. Einverstanden, das ist nicht ganz intuitiv.

3
michaeljt

Wenn Sie eine neue Klasse in Ihrem Qt-Projekt erstellen, können Sie den Pfad in diesem Assistenten auswählen und hiermit neue Ordner wie DAL, BO, UI, ... angeben.

3

Wenn mein "Daten" -Verzeichnis nur ein Unterverzeichnis "Modell" hatte, wurde es einfach als "Daten/Modell" angezeigt. Nachdem 'dao' als weiteres Unterverzeichnis hinzugefügt wurde, wurden die Daten in der üblichen +/- Weise angezeigt, um Modell und Dao anzuzeigen.

0
James Wald

Folgendes habe ich getan:

  1. Erstellen Sie im Projektordner (außerhalb der IDE) Verzeichnisse, in die Sie Ihren Code einfügen möchten, und verschieben Sie die Quelldateien in diese Verzeichnisse.

    • Angenommen, Sie haben "foo.cpp" und "foo.h" in das Verzeichnis "foo" gestellt.
  2. Gehen Sie in Ihrer "* .pro" -Datei zu jeder Zeile, die auf die verschobenen Quelldateien verweist, und fügen Sie den Verzeichnisnamen gefolgt von "/" vor dem Quelldateinamen hinzu.

.pro vor Schritt 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro nach Schritt 2:

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

HEADERS += \
foo/foo.h
  1. Erstellen Sie Ihr Projekt zum Testen neu.
0