QT中使用pri子工程
QT中使用pri子工程
使用子工程的作用是使得工程结构更加清晰,举个例子:
我制作了一个自定义控件,具备通用性,我打算把它用在日后的工程中。制作的这个控件需要用到头文件h、源文件c,资源文件qrc、图片文件png、以及这些文件的工程引用描述文件pro/pri,如果我想在以后的工程中使用这个控件,那么我必须把这一堆文件放到新工程对应的各个对应目录下,那么这个控件的资源文件和新工程的资源文件可能就要混到一块,耦合度太大。使用pri子工程的话,就可以把这个控件相关的所有文件都集成到一个单独的文件夹下,例如下图的customedWdt文件夹。如果新工程需要使用这个控件,那么只要把这个文件夹都拷贝到新工程目录下,然后在新工程的pro文件中include这个控件的pri文件即可。

pri文件的内容与pro文件格式相同,主要是描述源文件、头文件的包含路径,例如本文中的pri内容如下:
RESOURCES += \ $$PWD/pic/pic.qrc HEADERS += \ $$PWD/roundmeter.h SOURCES += \ $$PWD/roundmeter.cpp INCLUDEPATH += customedWdt
$$PWD代表pri文件所在的文件夹路径,当然$$PWD这个词不是我手写的,而是鼠标右击添加文件时,QT自动添加的。
新工程中,引用这个子工程的方法就是,在pro文件中,include这个pri文件,本文为例,直接在pitMeter.pro文件中添加一行:
include (./customedWdt/customedWdt.pri)
就算完成了。
为了使工程结构更清晰,方法不止使用pri文件这一种,最清晰的方法应该是,把子工程编译成lib/dll库文件,但是编译成库的话,不方便实时修改源码,和使用pri相比,各有利弊。
QT中使用pri子工程的更多相关文章
- Qt中 .pro 文件和 .pri 文件简介
*.pro 这是一个典型的Qt示例程序的.pro文件(propriprfprl.pro): TEMPLATE = app CONFIG += QT QT += core gui TARGET = pr ...
- 在idea中创建maven父子工程,子工程无法导入父工程依赖的问题
创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题.比如我的父工程名称是microservicecloud,子工程名称是microservicecl ...
- maven ----> 子工程中引入父工程
创建父工程,打包方式指定为 pom <groupId>com.example</groupId> <artifactId>SleuthMain</artifa ...
- maven的父工程中添加子工程
父工程的结构如下: 1.选中父工程名,接着单击鼠标右键,选择”Maven“ -----> "New Maven Module Project". 2.如下图,打勾 ---&g ...
- QT 编译遇到重定义;不同的基类型&在QT中使用C++ lib库
最近在使用osg和qt开发,在集成osg时候因为我使用的qt版本为非opengl的版本,导致qt自己封了一遍opengl的一些基类变量如double 这时候就会跟osg中声明的opengl的类型冲突, ...
- qt中ui的 使用介绍
1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButt ...
- Qt中Ui名字空间以及setupUi函数的原理和实现 <转>
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...
- Qt中Ui名字空间以及setupUi函数的原理和实现
用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...
- Qt 中的事件处理(一)
1.图形界面应用程序的消息处理模型 特点: 基于操作系统才能运行 GUI应用程序提供的功能必须由用户触发 用户操作界面时操作系统是第一个感知的 系统内核的消息通过事件处理转变成QT的信号 2. Qt中 ...
随机推荐
- 07 UML类图
移步: https://www.cnblogs.com/coolstream/p/9572846.html
- T-SQL学习笔记
学习T-SQL时记录的笔记,记得并不全也不详细 if和while语句 declare @age int select @age = DATEDIFF(year,stuAge,getdate()) fr ...
- C# 简单的区块链实现
1.项目配置 首先新建一个 Asp.Net Core 项目,然后选择 Empty Project(空项目) 类型,建立完成后无需进行任何配置. 2.数据模型 这里我们来创建一个具体的区块数据模型,使用 ...
- truncate删除一个分区,测试全局索引是否失效
目的,有一个清理数据的需求,需要删除历史的一个分区所有记录信息,但是存在主键global索引,如何更好的维护. 如下测试流程一 提前创建好一个已时间created 字段作为分区键的范围分区表 SQL& ...
- asp.net后台或前端获取TemplateField绑定的文本
GridView中使用最多的一个是BoundField,还有一个是TemplateField 这两个各有其特点,BoundField的话比较简单,设置好DataField.HeaderText等就可以 ...
- elk docker-compose
version: '3.1' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4 c ...
- alt和title的区别
alt是html标签的属性,而title既是html标签,又是html属性. 在图像标签img中,除了常用的宽度width和高度height属性之外,还有两个比较重要并且也会用到的属性,就是alt和t ...
- 13 个 JS 数组精简技巧
来自 https://juejin.im/post/5db62f1bf265da4d560906ab 侵删 数组是 JS 最常见的一种数据结构,咱们在开发中也经常用到,在这篇文章中,提供一些小技巧,帮 ...
- ABAP-JCO服务端连接问题
公司网络服务加域,若SAP服务器后端未配置端口号映射,则外部服务器注册JCO服务监听需要调整 # server jco.server.connection_count=5 jco.server.gwh ...
- Eclipse上安装websphere
Eclipse上安装websphere 参考:https://blog.csdn.net/qq_26264237/article/details/90107508 安装websphere插件 WebS ...