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

相关文章

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶