如何使用Qt创建子项目?
时间:2020-03-05 18:53:00 来源:igfitidea点击:
我将从一个大型的Qt应用程序开始,该应用程序由较小的组件(一起工作的类组)组成。例如,项目中可能会使用一个对话框,但是在集成到项目中之前应先自行开发。不用在某个位置的另一个文件夹中进行处理,然后将其复制到主项目文件夹中,我可以创建一个专用于该对话框的子文件夹,然后以某种方式将其合并到主项目中吗?
解决方案
回答
对于Windows上的Qt,我们可以为所需的每个子项目创建DLL。之后,从主项目(exe)使用它们就没有问题。我们必须照顾好依赖关系,但这并不是很困难。
回答
是的,我们可以编辑主项目(.pro)文件以包括子项目的项目文件。
看这里
回答
这就是我要做的。假设我想要以下文件夹层次结构:
/MyWholeApp
将包含整个应用程序的文件。
/MyWholeApp/DummyDlg/
将包含独立对话框的文件,该对话框最终将成为整个应用程序的一部分。
我将开发独立对话框和相关类。我将创建一个Qt项目文件,该文件将包含在内。它仅包含最终将成为整个应用程序一部分的表单和文件。
在/ MyWholeApp / DummyDlg /中的文件DummyDlg.pri:
# 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文件:
在/ 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文件非常简单,但是显示了我如何包含独立对话框。