我正在开发一个大型应用程序,出于组织和测试的考虑,我希望将其分为三个子项目;一个模型,一个视图和一个控制器来充当两者之间的中产阶级。
这是我目前拥有的结构:
/Project
| Project.pro
|--- MODEL
| |--- MODEL.pro
| `--- ...source files
|--- VIEW
| |--- VIEW.pro
| `--- ... source files
|--- CONTROLLER
| |--- CONTROLLER.pro
| `--- ...source files
我的Project.pro看起来像这样
TEMPLATE = subdirs
SUBDIRS += \
VIEW \
CONTROLLER \
MODEL
# where to find the sub projects
VIEW.subdir = VIEW
MODEL.subdir = MODEL
CONTROLLER.subdir = CONTROLLER
# what subproject depends on others
CONTROLLER.depends = VIEW MODEL
我在VIEW中有一个MainWindow类。如何在CONTROLLER项目中添加对它的引用,以便可以在CONTROLLER中的main.cpp
中使用此MainWindow类?
简单的“ #include mainwindow.h”是不够的。当我得到一个“没有这样的文件或目录”。有没有一种方法可以将其明确指向另一个对象的类?我必须在项目文件的某处添加依赖项吗?
答案 0 :(得分:0)
您的从属项目库吗?我不确定,但是此功能可能仅用于动态链接。
请参阅Qt文档中的TEMPLATE = lib示例
答案 1 :(得分:0)
在每个pro文件中,按如下所示设置您的includepath:
INCLUDEPATH += $$PWD/..
然后,您可以包含
之类的文件#include "VIEW/mainwindow.h"
此外,如果要构建子项目来分离dll文件,则必须像这样添加dll的依赖项:
LIBS += -lView
还要注意,很可能应该在视图中包含控制器,而不是相反。