Qtプロジェクトはかなり大きくなっているので、いくつかのディレクトリに分割したいと思います。ただし、QtCreatorで[参照]をクリックすると、[ディレクトリの追加]がなく、[新規追加]にそのようなものがありません。これはどういうわけか行うことができますか?
10 に答える
使用できる方法の1つは、サブディレクトリごとにプロジェクトインクルードファイルを追加することです。
Qt Creatorは、これらをネストされた方法でGUIに表示し、ファイルを追加できるようにします。
例えば
project.proで
include(folder1/include.pri)
folder1/include.priにあります
HEADERS += MyClass.h
SOURCES += MyClass.cpp
等
回答:QtCreatorでプロジェクトのフォルダーまたはサブディレクトリを作成するにはどうすればよいですか?
QT Creator 3.1.xより前では、プロジェクトを右クリックして[新規追加... ]をクリックし、目的のフォルダーへのパスを変更できます。
フォルダが存在している必要があります。Qtはそれを作成しません。
Qtは.proファイルのパスを処理します。
それでおしまい !
同じ問題があり、比較的簡単な答えが見つかりました。
file.cpp
移動するために必要なnewFolder
のは、ファイルの名前を(右クリック->名前の変更)に変更することだけですnewFolder\file.cpp
。
Qt Creatorはそれを新しいフォルダーに移動し、ファイルを自動的に更新し.pro
ます。
バージョン1.2.90以降、Qt Creatorは、[ツリーの簡略化]オプションのみが[ツリーの簡略化]に設定されていない場合、プロジェクトのフォルダーに存在するサブフォルダーをプロジェクトのツリーのブランチとして表示します。
QT-CREATORでサブディレクトリを作成することは不可能のようです。
次のことを試してください。
- file-explorerを使用するか、project-folder内のコマンドライン(たとえば、net /、gui /、test /、data / ...)を使用して、いくつかのサブディレクトリを作成します。
- 既存のファイルをこれらの新しいフォルダーに移動します。そして、* 。 projファイル内のパスを変更してください!
- 新しいフォルダ内に最初から新しいファイルも作成します(AddNew ...によって)!
... QT-CREATORは、*。proまたは*.priファイルに名前で書き込まれたファイルを含むフォルダーのみを表示します。ルートレベルでは、QT-CREATORはヘッダー、ソース、フォーム、その他のファイルを区別します。これらのルートフォルダー内には、プロジェクト独自のサブフォルダーが繰り返し表示されます。(このテキストではカバーされていませんが、サブプロジェクトに分割されています。)
Qt-Projectで新しいクラスを作成する場合、このウィザードでパスを選択し、これによりDAL、BO、UI、...などの新しいフォルダーを指定できます。
作成したいファイルがあれば、サブディレクトリを作成できます。親ディレクトリに移動し、そこにファイルを「追加」します。場所を「参照」して、参照ウィンドウ内に新しいフォルダを作成します。同意しました、それは完全に直感的ではありません。
これが私がしたことです:
プロジェクトフォルダ(IDEの外部)で、コードを配置するディレクトリを作成し、ソースファイルをそれらのディレクトリに移動します。
- 「foo.cpp」と「foo.h」をディレクトリ「foo」に置いたとします。
「*.pro」ファイルで、移動したソースファイルを参照する各行に移動し、ディレクトリ名を追加し、ソースファイル名の前に「/」を付けます。
ステップ2の前の.pro:
SOURCES += main.cpp \
foo.cpp
HEADERS += \
foo.h \
ステップ2の後の.pro:
SOURCES += main.cpp \
foo/foo.cpp
HEADERS += \
foo/foo.h
- テストするプロジェクトを再構築します。
'data'ディレクトリにサブディレクトリ'model'が1つしかない場合は、「data/model」と表示されます。別のサブディレクトリとして「dao」を追加した後、モデルとdaoを明らかにするために従来の+/-方法でデータを表示しました。
フォルダマネージャーでフォルダを追加できますが、ファイルが含まれている必要があります。QTに移動してプロジェクトを右クリックし、[既存のディレクトリを追加]をクリックしてフォルダを選択します。フォルダが空の場合、表示されません。