转载请注明:http://blog.163.com/hu_cuit/blog/static/122849143201127104232142/

我也才开始学习QT的菜鸟。但是前几天有同学叫我给他讲一下QT的基本的编程。在过程中我发现了自己的不足,这个要改进。因为我相信我会变成老鸟的。当然我发现同学对QT的工程文件不是很了解,又恰好我以前研究过,看过一些资料,但又想到可以也有和我一样的菜鸟的同志们。所以我打算Share一下我对QT中一些文件的认识。借此希望和大家一起进步,一起变成老鸟!

1.       *.pro文件

相信学习过QT的同志们,应该自己写了一个最简单的Hello程序。同时也就开始使用了一个命令:qmake –project 。这个命令是用来生成QT的工程文件(.pro)的,这个文件是用来设置编译或者链接的变量,以便用qmake生成相对应的Makefile文件。这个文件的基本内容就是:

TEMPLATE = app

TARGET =

DEPENDPATH += .

INCLUDEPATH += .

# Input

SOURCES += main.cpp

下面我们就通过这个文件一步一步认识.pro这个文件:

TEMPLATE:这个变量是用来定义你的工程将被编译成什么模式。怎么说呢,TEMPLATE=app 表示这个project将被编译成一个应用程序(application)。如果没有这个设置,系统将默认编译为application。当然TEMPLATE还有其他的值:lib(生成库的Makefile) ,subdirs(生成有多级目录管理的Makefile),vcapp,vclib,vcsubdirs(对应Windows 下面VC)。

TARGET:生成最后目标的名字。

如果要指定生成目标的路径,这加一个DESTDIR(这个用来指定路径)。

DEPENDPATH:工程的依赖路径。

INCLUDEPATH:这个用来指定工程要用到的头文件路径。

一般是自定义的或者没有放入系统头文件路径的头文件。

SOURCES:工程需要的源文件。

介绍到这里也许你对Pro文件就有一个大概的认识了,但是这还不够,这仅仅只是开始。

比如如何架子资源啊,如何加载语言啊,如何加载ui啊,如何找到图标啊等。

当然除了上面的QT变量外,还有另外的变量,这里只介绍常用的:

HEADERS:工程所需要的头文件。

FORMS:工程要用到的ui文件。(ui文件时用QT设计器生成的)。

LIBS:加载动态库。LIBS +=./mitab/libmitab.so。

TRASHLATIONS:加载要用到的语言翻译*.ts文件。

RESOURCES:加载要用到的资源*.qrc文件。

win32:RC_FILE:加载要用到rc文件(这个只能用在Windows环境)。可以用来配置图标。

CONFIG:告诉qmake应用程序的配置信息。这个变量可以用来指定是生成debug模式还是release模式,也可以都生成。也可以用来打开编译器警告或者关闭。还可以用来配置要Qt加载库。

Eg:

CONFIG +=debug_and_release

CONFIG(debug, debug|release){

TARGET = hello

DESTDIR = ./debug

}else{

TARGET = hello

DESTDIR = ./release

}

如果要加载qt的库和你想要多线程:CONFIG +=qt thread

如果你要在windows下面运行console:CONFIG +=console

QT:用来加载指定的库名,如:xml等,当时前提是要在CONFIG中配置qt值(如上)。

Eg:

QT += xml network

UI_DIR:UIC将ui转化为头文件所存放的目录。

RCC_DIR:RCC将qrc文件转化为头文件所存放的目录。

MOC_DIR:MOC命令将含Q_OBJECT的头文件转换为标准的头文件存放的目录。

OBJECTS_DIR:生成的目标文件存放的目录。

最后,因为QT是跨平台的,所以我们在不同的平台上用同一个pro文件,这要加入有关平台的信息。在windows是win32,Linux平台是unix。

Eg:

在Windows和Linux的动态库文件格式是不一样的。一个是lib文件一个是so文件。

win32:LIBS += ./mitab/mitab_i.lib

unix:LiBS += ./mitab/libmitab.so

eg:

win32 {

SOURCES += hello_win.cpp   //win平台

}

unix {

SOURCES += hello_win.cpp   //unix/linux平台

}

Qt工程文件Pro介绍(转)的更多相关文章

  1. Qt 工程文件(.pro)

    qmake –project 这个命令是用来生成QT的工程文件(.pro)的,这个文件是用来设置编译或者链接的变量,以便用qmake生成相对应的Makefile文件 TEMPLATE:这个变量是用来定 ...

  2. Qt工程文件说明

    Qt工程文件说明 2017-10-16  天天快乐6...  转自 LZS2851 修改   微信 分享: 这篇文章是我从360doc上转的,本来是要把转的url列出来的,但是它们居然禁掉了复制,而且 ...

  3. QT工程文件的条件编译选择与额外的编译参数配置

    QTCreator打开.pro工程文件后,依据不同的构建套件创建项目组.在项目组中,点开构建步骤的“详情”,增加一个自己的宏定义,比如: DEFINES+=IMX_287 然后,我们在.pro文件中添 ...

  4. Qt 项目管理文件(.pro) 详解

    项目文件目录树 在 Qt Creator 中新建一个 Widget Application 项目 samp2_1,在选择窗口基类的页面选择 QWidget 作为窗体基类,并选中"Genera ...

  5. Qt 工程 pro文件

    工作中,感觉pro文件的有些内容真不太懂,现系统性的学习一下.于此备录,分享共勉. 为了更好的理解,先创建一个简单的工程作为实践. [1]创建一个pro文件 1.1 新建proDemo工程.步骤如下: ...

  6. Qt项目管理文件(.pro)及其作用详解

    http://c.biancheng.net/view/1819.html 在 Qt Creator 中新建一个 Widget Application 项目 samp2_1,在选择窗口基类的页面选择 ...

  7. QT工程构建目录下,将生成的中间文件和可执行文件分离

    在QT工程中,当我们选择了构建目录后,编译生成程序后,总会发现在debug目录下会有混淆着各类文件,如下图 很多时候,我们又仅仅只需要可执行文件或者自定义的动态链接库.如下图 当然,如果不觉得麻烦,有 ...

  8. QT学习日记篇01(1)-QT界面初探- *.pro文件详解

    一: 项目管理文件(.pro文件) 项目管理文件用于记录项目的一些设置,以及项目包含文件的组织管理 后缀为".pro"的 文件是项目的管理文件,文件名就是项目的名称,如Demo.p ...

  9. [转] 解析Qt资源文件使用

    解析Qt资源文件使用 转自:http://mobile.51cto.com/symbian-270121.htm 本文详细的介绍了Qt文件的使用,和大部分GUI框架设计工具一样,Qt也引入了资源文件系 ...

随机推荐

  1. 真正明白c语言二级指针

    指针是C语言的灵魂,我想对于一级指针大家应该都很熟悉,也经常用到:比如说对于字符串的处理,函数参数的“值,结果传递”等,对于二级指针或者多级指针,我想理解起来也是比较容易的,比如二级指针就是指向指针的 ...

  2. ORACLE系统表大全

    下面全面是对Oracle系统表的一些介绍: 数据字典dict总是属于Oracle用户sys的. 1.用户: select username from dba_users; 改口令 alter user ...

  3. 三种实现Ajax的方式

    本文主要是比较三种实现Ajax的方式 1. prototype.js 2. jquery1.3.2.min.js 3. json2.js Java代码 收藏代码 后台处理程序(Servlet),访问路 ...

  4. SQL Server 占用CPU较高的解决方法

    触发原因:月底系统结账的时候对ERP的操作较多,有用户反馈系统之间的数据传输很久没有同步.随即到服务器上查看,没有发现有程序导致的问题,看了一下CPU的使用率,发现SQL Server占用率在百分之九 ...

  5. 发现一个github的奇葩设定

    commit时留下的邮箱,会显示在github的提交记录里,然后居然自动找服务器上的这个邮箱注册的人,显示这个用户名.

  6. 【转】Jmeter测试结果分析

    Jmeter测试结果分析这一篇,我打算分成上下两部分.上篇,主要讲述如何使用jmeter中Assertion对结果进行简单的分类:下篇,主要讲述的是当我们拿到测试结果后,我们应该如何去看待这些测试结果 ...

  7. java流类,快速统计出字符次数+++

    总结:学会给一个合适的命名,不要总是abc..虽然简单,但是不容易看懂,和方便去理解 package com.aini; import java.io.File; import java.io.Fil ...

  8. C# winform开发

    一处消息死锁分析 最近维护一个工控机上运行的winform程序,我的前任在一个弹出窗口(窗口B)里面调用了ShowDialog方法弹出对话框(窗口C),导致了一个问题是有时关闭窗口C时windows假 ...

  9. flask系列九之使用falsk建立项目总结

    待续.... 源码地址:https://gitee.com/FelixBinCloud/ZhiLiaoDemo/tree/master/ZhiLiao

  10. requirejs——define——普通模块

    一.普通模块可能包含的内容: 一个模块对应着一个js文件,由于模块可能包含着以下三种内容:模块名.依赖模块.返回给其他模块使用的参数:因此js文件根据包含内容的不同而写法不同. 一.传统的js脚本文件 ...