小さなコンポーネント (連携して動作するクラスのグループ) で構成される大規模な Qt アプリケーションから始めようとしています。たとえば、プロジェクトで使用されているダイアログがあるかもしれませんが、プロジェクトに統合する前に独自に開発する必要があります。どこかの別のフォルダーで作業してからメイン プロジェクト フォルダーにコピーする代わりに、そのダイアログ専用のサブフォルダーを作成し、それを何らかの方法でメイン プロジェクトに組み込むことはできますか?
3 に答える
これが私がすることです。次のフォルダ階層が必要だとしましょう:
/MyWholeApp
アプリケーション全体のファイルが含まれます。
/MyWholeApp/DummyDlg/
最終的にアプリケーション全体の一部となるスタンドアロン ダイアログボックスのファイルが含まれます。
スタンドアロンのダイアログ ボックスと関連するクラスを開発します。インクルードするQtプロジェクトファイルを作成します。最終的にアプリケーション全体の一部となるフォームとファイルのみが含まれます。
/MyWholeApp/DummyDlg/ にある DummyDlg.pri ファイル:
# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
上記の例は非常に単純です。必要に応じて他のクラスを追加できます。
スタンドアロン ダイアログ ボックスを開発するには、このダイアログ専用の Qt プロジェクト ファイルを作成します。
/MyWholeApp/DummyDlg/ にある DummyDlg.pro ファイル:
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
include(DummyDlg.pri)
# Input
SOURCES += main.cpp
ご覧のとおり、この PRO ファイルには上記で作成した PRI ファイルが含まれており、ダイアログ ボックスをスタンドアロンとして実行するための基本的なコードを含む追加ファイル (main.cpp) が追加されています。
#include <QApplication>
#include "dummydlg.h"
int main(int argc, char* argv[])
{
QApplication MyApp(argc, argv);
DummyDlg MyDlg;
MyDlg.show();
return MyApp.exec();
}
次に、このダイアログ ボックスをアプリケーション全体に含めるには、Qt-Project ファイルを作成する必要があります。
/MyWholeApp/ 内の WholeApp.pro ファイル:
TEMPLATE = app
DEPENDPATH += . DummyDlg
INCLUDEPATH += . DummyDlg
include(DummyDlg/DummyDlg.pri)
# Input
FORMS += OtherDlg.ui
HEADERS += OtherDlg.h
SOURCES += OtherDlg.cpp WholeApp.cpp
もちろん、上記の Qt-Project ファイルは非常に単純化されていますが、スタンドアロンのダイアログ ボックスを含めた方法を示しています。
はい、メイン プロジェクト (.pro) ファイルを編集して、サブ プロジェクトのプロジェクト ファイルを含めることができます。
Windows 上の Qt では、必要なサブプロジェクトごとに DLL を作成できます。その後、メインプロジェクト(exe)から使用しても問題ありません。依存関係を処理する必要がありますが、それほど難しくありません。