如何使用Qt创建子项目?

时间:2008-09-14 15:26:19

标签: qt

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

3 个答案:

答案 0 :(得分:20)

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

/MyWholeApp

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

/MyWholeApp/DummyDlg/

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

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

文件DummyDlg.pri,位于/ MyWholeApp / DummyDlg /:

# Input
FORMS += dummydlg.ui
HEADERS += dummydlg.h
SOURCES += dummydlg.cpp

以上示例非常简单。如果需要,您可以添加其他类。

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

文件DummyDlg.pro,位于/ MyWholeApp / DummyDlg /:

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文件:

文件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

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

答案 1 :(得分:1)

是的,您可以编辑主项目(.pro)文件以包含子项目的项目文件。

See here

答案 2 :(得分:0)

对于Windows上的Qt,您可以为所需的每个子项目创建DLL。之后在主项目(exe)中使用它们没问题。你必须要处理依赖关系,但这并不是很困难。