笔记:Qt开发之工程的多模块设计(pri)

一、知识储备

1.1 pro与pri文件

对于模块化编程,Qt提供了pro和pri,pro管理项目,pri管理模块。

.pro 文件是Qt项目的主配置文件,用于描述整个项目的基本信息和编译配置。

.pri 文件是包含在 .pro 文件中的辅助文件,用于组织和管理项目中的共享代码、配置选项和编译规则。

使用pri将项目划分成子模块后,各个模块的相关内容,移动到各自的pri文件,实现解耦,便于管理。

.pro 文件(项目文件)

作用: .pro 文件是Qt项目的主项目文件,用于描述项目的基本信息、依赖关系、编译配置等。

内容: 在 .pro 文件中,可设置项目的名称、版本号、编译选项、包含的源文件、依赖的库文件等信息。

示例: 一个简单的 .pro 文件可能包含以下内容:


 
 
  1. # 指定生成的应用程序名
  2. TARGET = MyProject
  3. # 生成应用程序,即可执行文件
  4. TEMPLATE = app
  5. # 生成库文件
  6. TEMPLATE = lib
  7. # 版本号
  8. VERSION = 1.0
  9. # 源文件
  10. SOURCES + = main.cpp \
  11. widget.cpp
  12. # 头文件
  13. HEADERS + = widget.h
  14. # 链接的库
  15. LIBS + = -lmylibrary
  16. # 包含.pri 文件
  17. include( file.pri)
  18. # 程序编译时依赖的相关路径
  19. DEPENDPATH + = . forms include qrc sources
  20. # 头文件包含路径
  21. INCLUDEPATH + = .
  22. # 工程中包含的头文件
  23. HEADERS + = include /painter.h
  24. # 工程中包含的.ui设计文件
  25. FORMS + = forms /painter.ui
  26. # 工程中包含的源文件
  27. SOURCES + = sources /main.cpp sources /painter.cpp
  28. # 工程中包含的资源文件
  29. RESOURCES + = qrc /painter.qrc

.pri 文件(包含文件)

作用: .pri 文件用于包含在 .pro 文件中,可组织和管理项目中的共享代码、配置选项和编译规则。

内容: 通常,.pri 文件包含一组变量定义、函数定义、条件语句等,用于封装特定的功能或配置选项。

示例: 一个简单的 .pri 文件可能包含以下内容:


 
 
  1. # 定义编译选项
  2. DEFINES + = USE_FEATURE_X
  3. # 包含其他的 .pri 文件
  4. include(anotherfile.pri)
  5. # 添加源文件
  6. SOURCES + = additional.cpp
  7. # 添加头文件
  8. HEADERS + = additional.h

使用: 在 .pro 文件中,通过 include 指令可以引入 .pri 文件,从而将其内容合并到项目中,使得项目的管理更加灵活和模块化。

pro文件的配置项


 
 
  1. #:注释
  2. CONFIG:项目配置项
  3. DEFINES:添加变量,作为预处理宏
  4. DEPENDPATH:依赖关系
  5. DESTDIR:指定目标文件的位置
  6. FORMS:指定UI文件
  7. HEADERS:指定头文件
  8. INCLUDEPATH:包含目录
  9. LIBS:指定链接库
  10. MOC_DIR:指定来自moc所有中间文件放置的目录
  11. OBJECTS_DIR:指定所有中间文件.o(.obj)放置的目录
  12. QT:指定项目中使用Qt的模块
  13. RCC_DIR:指定Qt资源编译器输出文件的目录(.qrc文件转换成qrc_ *.h文件的存放目录)
  14. RESOURCES:指定资源文件 (qrc)
  15. RC_ICONS:仅适用于Windows,指定的图标应该包含在一个生成的.rc文件里
  16. SOURCE:指定所有源文件
  17. TARGET:指定目标文件名称
  18. TEMPLATE:模板变量告诉qmake为这个应用程序生成哪种makefile
  19. TRANSLATIONS:指定翻译文件
pri的配置项

.pri(.pro,project include)可以看成是.pro文件的子集,里面的内容大致和.pro是一样的。

二、示例

开发工具:Qt Creator

假设工程为单项目多模块,有3个功能模块:subPro1、subPro2、subPro3

不同功能模块放到不同源文件,所有配置信息集中到pro文件,会导致pro文件过于复杂,难以维护

使用pri文件管理源文件,减轻pro文件负担,降低工程复杂度

1,将主界面文件放到单独文件夹,删除pro文件中的文件包含模块文件的配置信息

2,新建子文件夹subPro1,新建子文件subPro1.txt,修改文件后缀为subPro1.pri

3,在pro文件中添加pri文件


 
 
  1. INCLUDEPATH + = $$PWD /subPro 1
  2. include($$PWD /subPro 1 /subPro 1.pri)

4,修改subPro1.pri文件,加入源文件路径

选择subPro1图标,右键->添加现有文件,选择需要加入到subPro1.pri文件的源文件

5,继续操作subPro2、subPro3模块

每个模块的相关文件都放入各自的模块结构中,整个工程结构更清晰,便于维护。

示例下载

https://download.csdn.net/download/VistaTech/89532802


参考资料

Qt 项目文件Pri详解_qt pri文件-CSDN博客

Qt Pri多模块 - 三淼 - 博客园 (cnblogs.com)

【Qt】使用pri管理项目中的子模块-Qt-Qt未来工程师 (qtfuture.cn)

Qt中pro、pri文件的语法介绍_qtprpyurqoyqtprpyurqoy-CSDN博客

Qt开发之路--模块化设计.pri文件_qt_宁静致远2021-开放原子开发者工作坊 (csdn.net)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt多pro pri是一种源代码管理规范,是为了更加方便、灵活地管理大型项目的源代码而设立的。Qt是一个跨平台的C++应用程序开发框架,具有易于使用、可扩展、高兼容性等特点,被广泛应用于各种类型的软件开发中。而Qt多pro pri则是基于Qt框架的多个.pro文件和一个.pri文件进行的项目管理规范。 在Qt多pro pri模式下,每个子模块都有一个单独的.pro文件,而主模块则有一个.pri文件,主要用于存储所有的子模块的依赖关系和链接库信息。通过这种方式,可以实现模块化的编程方式,降低了各个模块之间的耦合度,提高了代码的可重用性和可维护性。 Qt多pro pri的项目管理规范,有以下几个优点: 1、方便管理:通过多.pro和一个.pri文件的方式管理项目,非常便于管理和维护大型的项目,尤其是对于代码库有多个开发人员同时参与开发的情况下,有助于降低开发成本和提高整体开发效率。 2、模块化编程:将程序拆成不同的模块,各个模块之间相对独立,互相之间不会影响,同时也方便代码的重用和维护。 3、可扩展性:在Qt多pro pri下,可以轻松地添加或删除子模块,通过维护.pri文件的依赖关系,子模块的变动不会对主模块产生重大影响,而且管理起来更加灵活和可扩展。 总之,Qt多pro pri的优势在于易于管理,方便扩展和维护,同时也可以实现代码的模块化,减少了代码的耦合度,提高了代码的可读性和可维护性,因此被广泛应用于各种类型的软件开发中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值