Qt项目设置

对于功能较多的软件,所有文件都放在同一个目录下显然不行。Visual Studio中可以在解决方案中用不同的项目区分各个模块。而Qt项目也提供了相应的机制:子项目(subdirs)。

之前我没用过Qt的子项目功能,就看了Qt Creator的源码。与许多开源项目一样,Qt Creator很清晰的目录层次关系,如下图所示。

项目的源码主要放在src中,测试则放在tests目录中。src中包含GUI界面的项目、插件项目、工具项目等,包括应用程序项目、库项目(动态共享库、静态共享库、Qt特有的插件项目)等类型。不同类型的项目一般位于不同的文件下。如下图所示。

app下就是应用程序,libs是共享库,plugins则是qt插件项目。仿照Qt Creator的源码,我将项目也设置成类似的结构。
最顶层的pro文件如下:
[cpp]
TEMPLATE = subdirs
SUBDIRS += \
src \
test
[/cpp]
subdirs的模板意味着当前项目具有子项目,所有的子项目列在SUBDIRS中,qmake认为每个项目名均在同名的子文件夹中。利用Qt Creator的向导可以很容易地创建和添加子项目,而不用手动修改pro文件。src项目同样具有子项目。
[cpp]
TEMPLATE = subdirs
SUBDIRS += \
app \
libs
[/cpp]
应用程序项目的TEMPLATE是app,而库项目的TEMPLATE是lib。Qt Creator的向导也可以很方便地生成各种类型的库项目,包括qt插件项目。
test目录中包含测试项目,Qt带有测试库QTtestLib,同样利用Qt Creator可以生成Qt的单元测试项目。