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

相关文章

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

QT Creator配置Kit的实现示例

《QTCreator配置Kit的实现示例》本文主要介绍了使用Qt5.12.12与VS2022时,因MSVC编译器版本不匹配及WindowsSDK缺失导致配置错误的问题解决,感兴趣的可以了解一下... 目录0、背景:qt5.12.12+vs2022一、症状:二、原因:(可以跳过,直奔后面的解决方法)三、解决方

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook