2008-09-14 79 views
13

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

回答

18

这里是我会做什么。假设我想要以下文件夹层次结构:

/MyWholeApp 

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

/MyWholeApp/DummyDlg/ 

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

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

文件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的项目文件中的整个应用程序:

文件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的项目上面的文件非常简单,但是显示了我如何包含独立对话框。

0

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

1

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

See here