.pri 文件是“Project Include”的缩写。本质上是一个包含Qt项目配置信息的文本文件。与.pro文件不同的是,.pri文件通常用于封装可重用的配置片段,而不是定义完整的项目。这样,我们就可以在多个.pro文件中包含相同的.pri文件,以实现配置的重用。
基本用法
在 Qt 项目中,.pri 文件可以通过 .pro 文件(Qt 项目文件)中的 include() 函数来引入。
include($$PWD/config.pri)
.pri 文件内容
.pri 文件的内容非常灵活,可以包含几乎所有在 .pro 文件中可以使用的指令。
例如:分别使用了FORMS、HEADERS、SOURCES、DEFINES、CONFIG等指令。
FORMS += $$PWD/frmaccoutinfo.ui $$PWD/frmadvancedsetting.ui HEADERS += $$PWD/frmaccoutinfo.h $$PWD/frmadvancedsetting.h SOURCES += $$PWD/frmaccoutinfo.cpp $$PWD/frmadvancedsetting.cpp DEFINES += SEVEN_INCH_SEAT CONFIG += config_seven
.pri文件的作用
1. 配置共享:如果你有多个Qt项目需要共享相同的编译设置、库依赖或源代码目录,你可以将这些配置放在.pri文件中,并在每个项目的.pro文件中包含它。这样,当你需要更新这些共享配置时,只需修改.pri文件即可,而无需逐个更新每个项目的.pro文件。
例如:工程项目Radio细分为 components、pinyin、JPKeyboard、JpLoginMng、UI_QWIDGET等子项目。想要在全局(项目和子项目)生效一个配置:
其余子项目以此类推,结果:
2. 模块化:.pri文件允许你将复杂的项目配置分解为更小的、更易于管理的模块。每个.pri文件可以专注于一组特定的配置(如网络库依赖、UI组件等),这使得项目结构更加清晰和模块化。
例如:一个大型界面工程中,按照界面进行分解,将每个界面分解为一个子模块。
3. 条件编译:.pri文件也支持条件编译指令,这允许你根据不同的条件(如操作系统、编译器类型等)包含不同的配置。这对于跨平台开发尤其有用,因为它允许你为不同的目标平台定制编译设置。
include(../config.pri) #if CONFIG contains config_seven contains(CONFIG, config_seven){ SOURCES += src/DataBase/clientdefine_7inch.cpp src/CallSession_7inch.cpp src/DataBase/DataJsonManager_7inch.cpp src/DataBase/datamanager_7inch.cpp HEADERS += inc/DataBase/clientdefine_7inch.h inc/DataBase/datamanager_7inch.h inc/DataBase/radiodb_7inch.h inc/Utils/commFunc_7inch.h } #if CONFIG contains config_twelve contains(CONFIG, config_twelve){ SOURCES += src/DataBase/clientdefine_12inch.cpp src/CallSession_12inch.cpp src/DataBase/DataJsonManager_12inch.cpp src/DataBase/datamanager_12inch.cpp HEADERS += inc/DataBase/clientdefine_12inch.h inc/DataBase/datamanager_12inch.h inc/DataBase/radiodb_12inch.h inc/Utils/commFunc_12inch.h }