Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备

本文主要是介绍Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备

  • Chapter1 Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备($$$)
  • Chapter2 在Qt项目中添加pri文件
    • 前言
    • 创建pri文件的步骤
      • 一、创建Qt项目
      • 二、创建pri空文件
      • 三、调试
  • Chapter3 Qt 之 pro 配置详解
  • Chapter4 Qt之pro配置多个子工程/子模块
    • 简述
    • 配置、效果
    • 多工程
    • 多模块
  • Chapter5 qt5.9 子项目创建及qt项目管理($$$)
    • 前言
    • 创建目录
      • 创建一个子目录项目:
      • 添加一个子项目app
      • 添加lib库和dll库
      • 同样的步骤,添加dll
      • 添加src子项目
      • 设置编译目录和生成可执行目录
      • 设置执行编译顺序
      • 添加静态库工程
      • 设置生成动态库路径,可放在可执行文件路径:
      • 添加动态库
  • Chapter6 QT创建子目录项目,可以让项目组织成树形结构的示例:在项目中同时创建Application和第三方动态库(内部)($$$)
    • 1、新建子目录项目
    • 2、创建Application
    • 3、创建动态库
    • 4、Application项目添加动态链接库。
    • 5、测试


Chapter1 Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备($$$)

Chapter2 在Qt项目中添加pri文件

原文链接:https://blog.csdn.net/michip_lwx/article/details/104027914

前言

一般我们创建Qt项目工程的时候,都是直接把所有的项目,头文件和资源文件等全放入pro中,这样一来小的项目(只有少数几个文件)那种,你可能就会觉得没有什么,但是在一些中大型的开发项目当中,可能会有十几个,甚至几十个文件的开发项目中,我们看树形结构的文件时,就会感到很杂乱,pri文件的作用就尤为重要了。简单来说,pri文件就是把pro文件中的一部分放到pri文件中进行一个管理,类似头文件,进行分块管理,分担pro文件的一部分压力,这样一来pro文件看起来就不会显得很臃肿。

创建pri文件的步骤

对于初学者来说,如何创建pri文件也算是件蛮头疼的事,下面就简单讲讲创建pri文件的步骤。

一、创建Qt项目

首先按照原本创建Qt那样创建一个简单的QWidget的项目,如下图所示:
在这里插入图片描述
在这里插入图片描述

二、创建pri空文件

1、在创建的PriProTest工程下创建一个文件夹PriTest,并创建pritest.pri文本:
在这里插入图片描述
在这里插入图片描述
2、在pro中添加pri文件,像下面那样添加相应的代码,并ctrl+B,就会出现如下图所示情况:

QT       += core guiinclude( ./PriTest/pritest.pri )

在这里插入图片描述

3、以上一步就已经成功添加一个pri文件了,就可以在PriTest文件夹下添加我们想要的一些C++资源或文件:
在这里插入图片描述

三、调试

1、在test.h文件随便写一个加法的调试方法,已验证pri文本能否起作用。

#ifndef TEST_H
#define TEST_H#include <QWidget>
#include <QDebug>class test : public QWidget
{Q_OBJECT
public:explicit test(QWidget *parent = nullptr);public:static int add(int a, int b){qDebug() << "a + b=" << a+b;return a+b;}signals:public slots:
};#endif // TEST_H

2、在widget.cpp的构造函数中调用:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);//调试验证qDebug() << "调试...";test::add(4, 6);
}Widget::~Widget()
{delete ui;
}

3、结果可用
在这里插入图片描述
以上就是简单的pri文本创建的过程。

Chapter3 Qt 之 pro 配置详解

https://blog.csdn.net/liang19890820/article/details/51774724

Chapter4 Qt之pro配置多个子工程/子模块

Qt之pro配置多个子工程/子模块

qt5.9 子项目创建及qt项目管理

QT创建子目录项目,可以让项目组织成树形结构的示例:在项目中同时创建Application和第三方动态库(内部)

======================================================================================

简述

进行Qt项目开发的时候,尤其是大型项目,经常涉及多工程/多模块问题,其主要思想还是模块化,目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。

配置、效果

在这里插入图片描述

多工程

如果需要管理多工程(pro),比如:库工程、界面工程,其中,每一个工程均可单独编译成功,但存在依赖关系。也就是说,lib2依赖于lib1,而UI依赖于lib2。

配置如下:
配置TEMPLATE为subdirs设置多工程
配置SUBDIRS,指定需要添加的工程模块
配置CONFIG为ordered指定顺序编译

例如:

TEMPLATE = subdirs#SUBDIRS += \#    SubProject3 \#    SubProject2 \#    SubProjectSUBDIRS +=
PWD/SubProject3/SubProject3.pro 
PWD/SubProject2/SubProject2.pro \
$$PWD/SubProject/SubProject.proCONFIG += ordered

多模块

延续多工程,如果某一个工程功能比较多,我们必然要进行模块化。例如:界面工程包含:登录界面、设置界面、主界面。。。这时,我们就可以使用pri模块化了。

include(PWD/Login/Login.pri)
include(PWD/Settings/Settings.pri)
include($$PWD/MainWindow/MainWindow.pri)

Chapter5 qt5.9 子项目创建及qt项目管理($$$)

原文链接:https://blog.csdn.net/wrzfeijianshen/article/details/77861855

前言

所有的课件可以去https://github.com/wrzfeijianshen/Courseware 下载哦

关于下载地址详见于:http://www.feijianshen.com/?p=57

或者http://blog.feijianshen.com/?p=57

工程组织结构和动态库引用,是c++作为一个项目开发的一个必要的知识领域。多工程多工作目录,库如何调用问题。

我从网上也找了几篇关于qt如何建立子项目等等的介绍,也不详细。如何先让小白跑起来,这才是重要一步,写代码多了,自然就成神了,第一步总得尝试。

首先了解下工程目录结构,并不是所有的,只是一个广泛的目录结构,大家可以先看看。

l app:可执行文件(界面代码)

l lib(Library ):库(外部调用)

l src: 存放软件所有的源代码(核心代码)

l bin:编译后,生成的可执行文件,库目录

l make_bin:编译库文件目录(也可以不进行更改)

创建目录

首先我们创建一个总的项目文件夹:project:
在这里插入图片描述
qt版本为5.9.1

创建一个子目录项目:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击取消,已经创建一个空的项目工程了。
在这里插入图片描述
在这里插入图片描述

添加一个子项目app

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加lib库和dll库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同样的步骤,添加dll

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

添加src子项目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置编译目录和生成可执行目录

在这里插入图片描述
可执行目录是main_make/bin

在这里插入图片描述
设置构建项目路径,这个至关重要。
在这里插入图片描述
这样子所有的编译出来的文件都存放在make_bin里了。
在这里插入图片描述
设置生成可执行文件目录执行(运行)目录

这个可执行文件在构建编译后的文件目录即在main_make文件夹下。
在这里插入图片描述
那么main.pro编译后的目录在main_make/目录下

那么app.pro所编译的目录在,main_make/app目录下

所以

DESTDIR = …/bin/MyDebug# 指定生成的应用程序放置的目录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置执行编译顺序

静态库和动态库先编译再编译可执行界面
在这里插入图片描述

添加静态库工程

在这里插入图片描述
可以单独再建立好多的项目,再建立库,也可以只建立一个库。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置生成动态库路径,可放在可执行文件路径:

那add.pro编译后的文件路径则是

main_make/lib/add目录下

DESTDIR += …/…/bin/MyDebug# 指定生成的应用程序放置的目录
在这里插入图片描述
在这里插入图片描述
可以先写一段代码测试功能

在Add类库中写一函数

在这里插入图片描述
在这里插入图片描述
在界面项目中,指定库的头文件路径。
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
这样子已经跑起来了。
在这里插入图片描述

添加动态库

操作和静态库类似
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指定生成的dll路径。
在这里插入图片描述
在app.pro中,指定头文件和库名称。
在这里插入图片描述
在动态库中添加一个函数,进行测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里算是演示成功了,不过是简单的一个小小demo。qt的多项目多多练习终能成为大才。

Chapter6 QT创建子目录项目,可以让项目组织成树形结构的示例:在项目中同时创建Application和第三方动态库(内部)($$$)

1、新建子目录项目

文件》新建文件或项目》其他项目》子目录项目:
在这里插入图片描述
点击Choose,设置名称和创建路径。
在这里插入图片描述

后面一直点击下一步直至子目录项目创建完成后:
在这里插入图片描述

2、创建Application

在上一步创建完成后弹出的新建子项目框中,Application》Qt Widgets Application
在这里插入图片描述

点击Choose,设置名称(创建路径默认即可)
在这里插入图片描述
没有特殊需要的话就一直下一步直至Application创建完成:
在这里插入图片描述

3、创建动态库

项目目录名称右击》新子项目:
在这里插入图片描述
Library》C++库
在这里插入图片描述
点击Choose,设置名称(创建路径默认即可)
在这里插入图片描述
没有特殊需要的话就一直下一步直至Application创建完成:
在这里插入图片描述

4、Application项目添加动态链接库。

此时主项目下有两个子项目,Application需要连接动态链接库才能调用,所以要连接。

Application项目目录名称右击》添加库:
在这里插入图片描述
内部库》下一步:注意:是内部库
在这里插入图片描述
在这里插入图片描述
下一步完成即可,添加库会在Application项目pro文件中生成下面几行代码:
在这里插入图片描述
下面先点击小锤子构建,然后测试就可以了!

5、测试

添加上头文件,在动态库项目中添加一个求和的成员函数,进行测试
在这里插入图片描述

这篇关于Qt项目通过.pri文件将众多文件按功能模块分类显示,开发大型项目必备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217041

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时