1. 注释
从“#”开始,到这一行结束。

2. 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
TEMPLATE = app
A> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
B> lib - 建立一个库的makefile。
C> vcapp - 建立一个应用程序的VisualStudio项目文件。
D> vclib - 建立一个库的VisualStudio项目文件。
E> subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

3. 基础文件设置

CODECFORSRC = GBK   #指定源文件编码方式

HEADERS += include/painter.h  #工程中包含的头文件

FORMS += forms/painter.ui  #工程中包含的.ui设计文件

SOURCES += sources/main.cpp sources/painter.cpp     #工程中包含的源文件

RESOURCES += qrc/painter.qrc  #工程中包含的资源文件

LIBS += -L folderPath  #引入的lib文件的路径  -L:引入路径

Release:LIBS += -L folderPath  # release 版引入的lib文件路径

Debug:LIBS += -L folderPath   # Debug 版引入的lib 文件路径

DEFINES += XX_XX_XXX    #定义编译选项,在.h文件中就可以使用 :#ifdefine xx_xx_xxx

RC_FILE = xxx.icns  #程序图标

4. 指定生成的应用程序名
TARGET = pksystem

5. 配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。

例如 CONFIG+= qt warn_on release c++11

在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项是更安全的。
A> qt部分告诉qmake这个应用程序是使用Qt来连编的。这也就是说qmake在连接和为编译添加所需的包含路径的时候会考虑到Qt库的。所有的Qt库都需要在CONFIG中添加之后才能使用,例如添加thread才能使用多线程库。
B> warn_on部分告诉qmake要把编译器设置为输出警告信息的。
C> release部分告诉qmake应用程序必须被连编为一个发布的应用程序。在开发过程中,程序员也可以使用debug来替换release。

D> 使用C++11的特性

6. 指定生成的应用程序放置的目录
DESTDIR += ../bin

7. 指定uic命令将.ui文件转化成ui_*.h文件的存放的目录
UI_DIR += forms

8. 指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录
RCC_DIR += ../tmp

9. 指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录
MOC_DIR += ../tmp

10. 指定目标文件(obj)的存放目录
OBJECTS_DIR += ../tmp

11. 程序编译时依赖的相关路径
DEPENDPATH += . forms include qrc sources

12. 头文件包含路径
INCLUDEPATH += .

13. 执行qmake时输出消息

message(XXX) 会在执行qmake时输出括号中的内容

14. 获取系统参数

如 $$(PATH) 可以读取环境变量中的PATH

15. 平台相关性处理
我们在这里需要做的是根据qmake所运行的平台来使用相应的作用域来进行处理。为Windows平台添加的依赖平台的文件的简单的作用域看起来就像这样:

win32 {
SOURCES += hello_win.cpp
}

Linux或Unix使用作用域unix。

16. 使用系统命令

主要是使用system关键字

例如拷贝文件到指定目录

win32 {src_dir = $$PWD\Resources\*.*CONFIG(debug, debug|release) {dst_dir = $$OUT_PWD\\debug\\Resources\\} else {dst_dir = $$OUT_PWD\\release\\Resources\\}# dst_dir 最后的 \\ 是必须的,用来标示 xcopy 到一个文件夹,若不存在,创建之# Replace slashes in paths with backslashes for Windowssrc_dir ~= s,/,\\,gdst_dir ~= s,/,\\,g!exists($$dst_dir):system(xcopy $$src_dir $$dst_dir /y /e)
}

转载于:https://www.cnblogs.com/vectorli/p/5712119.html

Qt Pro语法总结相关推荐

  1. Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分)

    #Qt pro文件下跨平台宏的使用(windows/linux 以及x86 和 arm的区分) 在pro文件中添加: #仅在linux 系统下, 硬件平台无关的内容 unix{HEADERS += \ ...

  2. QT pro文件详解

    1.QT pro文件配置项说明 注释:注释是从一行的#开始,到这一行的结束. QT += :这个是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -=配置项. TEMPLATE = : ...

  3. QT.pro工程文件中判断宏定义是否存在

    在QT .pro文件中添加自定义了宏: DEFINES += ANDROID_TV 那么如果要判断该宏是否存在,可以这么写 xx.pro contains(DEFINES,ANDROID_TV) { ...

  4. Qt pro 文件详解

     Qt pro 文件详解 1. TEMPLATE  变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake  工具定义了5种模板:   a. 应用 ...

  5. Qt pro文件语法

    在Qt下做开发的时候.pro文件就是工程的配置文件,虽然很多时候里面的选项是工具自动生成的,但是难免会需要手动修改的时候,下面就记录一下它的基本语法 #:在.pro文件中表示注释,注释当前行 TEMP ...

  6. Qt pro使用sql之类的需要添加的模块

    举个栗子,当要使用QSqlQuery 的时候需要在pro中添加Qt +=sql 然后在.h里面#include<QSqlQuery>即可使用sql. 同理要使用media或者net的时候只 ...

  7. qt .pro文件

    转自http://www.cnblogs.com/xupeidong/p/9476957.html 非常感谢大佬分享,自己在这里做个记录 一.名称解释 QT += :这个是添加QT需要的模块 TARG ...

  8. QT入门语法——signal,slot

    . Qt 5 Alpha 已经发布.我们会在后面的文章中看到 Qt 5 的新变化.今天,我们先来看一下 Qt 5 带来的一个最主要的变化:signal/slot 机制的改变. Qt 5 之前的语法 在 ...

  9. QT pro文件解析

    在QT中使用qmake自动生成pro文件,如果要自己定制工程选项,则需要自行修改pro文件. pro文件有以下关键字:TEMPLATE.TARGET.DESTDIR.DEPENDPATH.INCLUD ...

  10. Qt pro工程文件中判断宏定义是否存在

    在Qt工程文件中如果自定义了宏,那么在如果要判断该宏是否存在,可以这么写 xx.pro 添加宏定义: DEFINES += ANDROID_TV 判断宏定义是否存在 contains(DEFINES, ...

最新文章

  1. decorator java_装饰器模式-Decorator(Java实现)
  2. linux内核丢弃udp报文,c++ Linux UDP数据包丢失的原因
  3. leetcode 41. First Missing Positive
  4. 处理js事件时,获取键盘数字注意
  5. list.h在用户态下的应用
  6. IntelliJ IDEA 15快捷键大全
  7. eslint 保存自动格式化_ESLint一款可组装的JavaScript和JSX检查工具
  8. 好代码是管出来的——.Net中的代码规范工具及使用
  9. 入行架构师之前,这7项技能你要先了解一下
  10. typora绑定github博客_博客生产线:WordPress(平台)+Typora(编辑器)+GitHub(图床)
  11. R语言ETL系列:过滤(filter)
  12. 2021-12-08 根据XPS 价带谱计算价带谱中心
  13. Open Inventor Coin3D
  14. 回文字符串判断python实现
  15. 深海迷航代码_《深海迷航(Subnautica)》入坑指南
  16. 如何用计算机弹奏纸短情长,纸短情长计算器谱
  17. python 进化树_Python ete3有没有一种方法来扩展系统进化树的分支?
  18. 语音信号短时域分析之短时平均能量(四)
  19. 发送文件的过程计算机,用电脑给别人传文件的方法步骤图
  20. TCP原理,Socket与网络编程入门

热门文章

  1. 中国制造业加速拥抱云计算 产业规模达1500亿
  2. 首个 Ubuntu 平板将于今年秋天面世
  3. 复习各种符号 字符 巩固基础2
  4. InnoDB中Adaptive hash index存在问题、Percona改进及一个bug
  5. 面向对象中多个对象之间的关系
  6. 高性能计算多集群管理平台
  7. kafka sqs 与_RabbitMQ和Kafka的比较
  8. C#中网络编程异步操作方法与 粘包和分包问题
  9. 3 矩阵运算_FlyAI小课堂:小白学PyTorch(11) 常见运算详解
  10. MCU串行通讯和并行通讯的区别以及UART的理解