当前位置 博文首页 > 木木木 的博客:Qt开发之路16---模块化设计.pri文件
i 是?包含(include)的首字母。类似于C、C++中的头文件,我们可以把 *.pro 文件内的一部分内容单独放到一个 *.pri 文件内,然后包含进来。
例如,我们将源文件的设置独立出来,放到propriprfprl.pri文件内:
SOURCES += main.cpp/
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
这时,我们的 propriprfprl.pro 文件就可以简化为:
TEMPLATE = app
CONFIG += QT
QT += core gui
TARGET = propriprfprl
include(propriprfprl.pri)
如果一个大点的项目,含有多个*.pro文件呢,这些pro需要有些共同的设置或需要的文件,这时就很有必要了。
对于QT项目,默认情况下所有的文件都是在同一个文件夹下进行开发的,当做一个项目规模相对较大的时候文件很多导致维护及其困难,所以pri对文件进行模块化开发至关重要,pri进行模块化无非就是将相同业务逻辑的代码放到同一个文件夹下进行管理。
当你的工程文件变多时,你的工程逻辑结构会变得相对复杂,这时点开你的工程节点会发现节点下都是这样长长的一串,什么模块的文件都挤在一个节点下,很臃肿。如下图模块化前后对比:
第一步:到项目根目录下新建你自己的业务逻辑的文件夹,Dialog、Widget文件夹如下图:
第二步:将相同的功能文件移动到对应的文件夹中。
第三步:在新建的文件夹下新建 " .pri " 文件,新建.pri文件名称规则(文件夹名称+.pri),新建.pri文件后,手动添加内容,或者根据第五步添加。
第四步:在项目根目录的.pro文件中添加如下内容。
INCLUDEPATH
include
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TestQt
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
RESOURCES += \
image.qrc
DISTFILES +=
INCLUDEPATH += $$PWD/Dialog # 工程编译时,会去INCLUDEPATH列表下的目录搜索文件
include ($$PWD/Dialog/Dialog.pri) # include()包含的文件会显示在工程结构图中
INCLUDEPATH += $$PWD/Widget # 工程编译时,会去INCLUDEPATH列表下的目录搜索文件
include ($$PWD/Widget/Widget.pri) # include()包含的文件会显示在工程结构图中
第五步:qmake后,分别右键Dialog、Widget添加对应文件夹下的文件。.pri文件内容如下:
Dialog.pri文件:
FORMS += \
$$PWD/dialogone.ui \
$$PWD/dialogtwo.ui
HEADERS += \
$$PWD/dialogone.h \
$$PWD/dialogtwo.h
SOURCES += \
$$PWD/dialogone.cpp \
$$PWD/dialogtwo.cpp
Widget.pri文件:
FORMS += \
$$PWD/widgetone.ui \
$$PWD/widgettwo.ui
HEADERS += \
$$PWD/widgetone.h \
$$PWD/widgettwo.h
SOURCES += \
$$PWD/widgetone.cpp \
$$PWD/widgettwo.cpp
第六步:效果图
写好一个.pro文件非常有助于你去梳理项目的结构组成,一个良好的框架,也往往对开发维护有着事半功倍的效果。
上一篇:Qt开发之路15—资源文件
下一篇:Qt开发之路17—布局管理器