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相比,各有利弊。

原文:http://www.pianshen.com/article/3123369452/

QT中使用pri子工程的更多相关文章

  1. Qt中 .pro 文件和 .pri 文件简介

    *.pro 这是一个典型的Qt示例程序的.pro文件(propriprfprl.pro): TEMPLATE = app CONFIG += QT QT += core gui TARGET = pr ...

  2. 在idea中创建maven父子工程,子工程无法导入父工程依赖的问题

    创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题.比如我的父工程名称是microservicecloud,子工程名称是microservicecl ...

  3. maven ----> 子工程中引入父工程

    创建父工程,打包方式指定为 pom <groupId>com.example</groupId> <artifactId>SleuthMain</artifa ...

  4. maven的父工程中添加子工程

    父工程的结构如下: 1.选中父工程名,接着单击鼠标右键,选择”Maven“ -----> "New Maven Module Project". 2.如下图,打勾 ---&g ...

  5. QT 编译遇到重定义;不同的基类型&在QT中使用C++ lib库

    最近在使用osg和qt开发,在集成osg时候因为我使用的qt版本为非opengl的版本,导致qt自己封了一遍opengl的一些基类变量如double 这时候就会跟osg中声明的opengl的类型冲突, ...

  6. qt中ui的 使用介绍

    1.什么是ui?ui通常是用Qt 设计师设计出来的界面文件的后缀.通常情况下ui是一个指向这个界面类的指针.ui-> 一般就是用来访问这个界面类里面的控件.例如你的ui文件里有一个叫okButt ...

  7. Qt中Ui名字空间以及setupUi函数的原理和实现 <转>

    用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...

  8. Qt中Ui名字空间以及setupUi函数的原理和实现

    用最新的QtCreator选择GUI的应用会产生含有如下文件的工程 下面就简单分析下各部分的功能. .pro文件是供qmake使用的文件,不是本文的重点[不过其实也很简单的],在此不多赘述. 所以呢, ...

  9. Qt 中的事件处理(一)

    1.图形界面应用程序的消息处理模型 特点: 基于操作系统才能运行 GUI应用程序提供的功能必须由用户触发 用户操作界面时操作系统是第一个感知的 系统内核的消息通过事件处理转变成QT的信号 2. Qt中 ...

随机推荐

  1. 原生 js 录屏功能

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  2. vue-cli 3.0 端口变5位数

    问题原因 :   portfinder1.0.22版本导致vue-cli-service servey启动后,服务端口变成了随机端口的问题 解决办法: 删了目录 下的node-modules 然后 执 ...

  3. sqlserver exists 与 in 的区别

    使用 EXISTS 方式 select * from A  a where EXISTS(select b.mainInfoId from B b  where b.mainInfoId=a.main ...

  4. C#,WinForm文本框录入内容判断

    || e.KeyChar > ) && (e.KeyChar != ) && (e.KeyChar != ) && (e.KeyChar != ) ...

  5. Centos6 Connect WiFi

    Centos6 Connect WiFi // 安装 wireless tools yum install wireless-tools dkms pciutils lsusb // 使用wlan命令 ...

  6. 理解Java序列化中的SerialVersionUid

    一.前言 SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容.如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClass ...

  7. kvm第三章--虚拟化存储管理

  8. 【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串

    在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,其中Left函数表示从开始字符向后截取多少个字符,Right函数表 ...

  9. bootstrap 模态窗口 多重/多个弹窗滚动条补丁

    由于bootstrap的模态窗口默认不支持多次弹出, 在关闭的时候会有滚动条消失的问题. 经过观察和查看源码, 发现在开启和关闭的时候会在body上增加/减少一个"modal-open&qu ...

  10. 简述FTP的主动模式与被动模式(精简)

    一.主被动 主动: 客户端从任意一个大于1024的端口现在假设为1234(非特权端口)连接到服务端的21端口(命令端口),随之客户端监听端口(N+1)即为1235端口(可以理解为这是客户端认定的数据端 ...