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. PAT(B) 1051 复数乘法(Java)

    题目链接:1051 复数乘法 (15 point(s)) 参考博客:1051 复数乘法(PAT 乙级 C++实现)-guangjinzheng 题目描述 复数可以写成 (A+Bi) 的常规形式,其中 ...

  2. java连接腾讯云上的redis

    目录 腾讯云上的配置 redis连接单机和集群 依赖 pom.xml redis参数的配置文件 遗留问题 腾讯云上的配置 在安全组上打开相关的端口即可 "来源" 就是你的目标服务器 ...

  3. 使用parted对Linux未分区部分进行分区

    1. 使用命令parted -l 查看当前分区 可以看到硬盘有2396GB即有2.5T , 但是分区就分了50G一个盘, 需要分剩下部分 [root@localhost ~]# parted -l M ...

  4. Python中的单例模式的几种实现方式和优化以及pyc文件解释(转)

    原文:https://www.cnblogs.com/huchong/p/8244279.html 另一篇关于.pyc文件是什么?  原文: http://blog.sina.com.cn//s/bl ...

  5. 一般处理程序里使用session对象

    在一般处理程序里使用session,必须继承  IRequiresSessionState  接口.

  6. centos6克隆虚拟机后,网络无法访问和启动

    使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...

  7. Django Rest framework实现流程

    目录 一 什么是restful架构 二 Django REST framework简介 三 Django REST framework原理 四 Django REST framework源码流程 五 ...

  8. django.http.request中QueryDict 对象

    在一个 HttpRequest 对象中, GET 和 POST 属性都是 django.http.QueryDict 的实例. QueryDict 是一个类似于字典的类,专门用来处理用一个键的多值.当 ...

  9. Ipython 和 python 的区别

    IPython是一个python交互shell,它比默认的python shell更易于使用.它支持自动变量完成.自动缩进.bash shell命令,并且内置了许多有用的函数和函数. IPython是 ...

  10. css 边框上如何写入文字?

    方法一: 1.首先,打开html编辑器,新建html文件,例如:index.html. 2.在index.html中的<body>标签中,输入html代码:. <div style= ...