如何使用Qt创建子项目?

Mar*_*ius 14 qt

我即将开始使用一个大型Qt应用程序,它由较小的组件(一起工作的类组)组成.例如,可能有一个在项目中使用的对话框,但在集成到项目之前应该自行开发.我可以创建一个专门用于该对话框的子文件夹,然后以某种方式将其合并到主项目中,而不是在某个地方的另一个文件夹中处理它然后将其复制到主项目文件夹中.

Jér*_*ôme 20

这就是我要做的.假设我想要以下文件夹层次结构:

/MyWholeApp
Run Code Online (Sandbox Code Playgroud)

将包含整个应用程序的文件.

/MyWholeApp/DummyDlg/
Run Code Online (Sandbox Code Playgroud)

将包含独立对话框的文件,该文件最终将成为整个应用程序的一部分.

我将开发独立对话框和相关的类.我会创建一个将包含的Qt项目文件.它将仅包含最终将成为整个应用程序一部分的表单和文件.

文件DummyDlg.pri,在/ MyWholeApp/DummyDlg /中:

# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp
Run Code Online (Sandbox Code Playgroud)

上面的例子非常简单.如果需要,您可以添加其他类.

为了开发独立对话框,我将创建一个专用于该对话框的Qt项目文件:

文件DummyDlg.pro,在/ MyWholeApp/DummyDlg /中:

TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .

include(DummyDlg.pri)

# Input
SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)

如您所见,此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();
}
Run Code Online (Sandbox Code Playgroud)

然后,要将此对话框包含到整个应用程序,您需要创建一个Qt-Project文件:

文件WholeApp.pro,在/ MyWholeApp /中:

TEMPLATE = app
DEPENDPATH += . DummyDlg
INCLUDEPATH += . DummyDlg

include(DummyDlg/DummyDlg.pri)

# Input
FORMS += OtherDlg.ui
HEADERS += OtherDlg.h
SOURCES += OtherDlg.cpp WholeApp.cpp
Run Code Online (Sandbox Code Playgroud)

当然,上面的Qt-Project文件非常简单,但显示了我如何包含独立对话框.