문제
나는 더 작은 구성요소(함께 작동하는 클래스 그룹)로 구성된 대규모 Qt 애플리케이션을 시작하려고 합니다.예를 들어 프로젝트에 사용되는 대화 상자가 있을 수 있지만 프로젝트에 통합되기 전에 자체적으로 개발해야 합니다.다른 폴더에서 작업한 다음 기본 프로젝트 폴더에 복사하는 대신 해당 대화 상자 전용 하위 폴더를 만든 다음 어떻게든 기본 프로젝트에 통합할 수 있습니까?
해결책
내가 할 일은 다음과 같습니다.다음 폴더 계층 구조를 원한다고 가정해 보겠습니다.
/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)에서 사용하는데 문제가 없습니다.종속성을 처리해야 하지만 그리 어렵지는 않습니다.