《Qt 5/PyQt5 实战指南》学习笔记-pro文件

文章目录

  • 前言
    • 常用类型
    • 1.EXE还是DLL-----TEMPLATE
    • 2.用什么开发语言-----LANGUAGE
    • 3.生成的目标文件名是啥---TARGET
    • 4.debug还是release---CONFIG
    • 5.使用Qt的哪些模块-----QT
    • 6.各种DIR和各种PATH
    • 7.FORMS
    • 8.HEADERS
    • 9.SOURCE
    • 10.RESOURCE
    • 11.LIBS
    • 12.TRANSLATIONS
    • 13.SUBDIRS

前言

  pro文件是Qt定义的项目配置文件,qmake 的工程(project)文件,它是文本格式的文件,采用key=values的语法;
  可以使用“\”进行换行;“\”与前面语句之间增加空格,可以增加可读性;
  “#”表明本行是注释,Qt不会把这行当作配置进行解析;
  本文记录了学习《Qt 5/PyQt5 实战指南》的笔记;

常用类型

类型名 含义
SOURCES 本项目用到的cpp文件列表
HEADERS 项目中使用到的头文件列表
TARGET 项目生成的目标程序的名称
DESTDIR 表示生成的最终目标程序的存放路径
OBJECTS_DIR 表示程序生成的中间临时文件的存放路径
MOC_DIR 用来描述moc文件的存放路径(Qt的moc命令生成的临时文件)
UI_DIR 用来表示Qt的uic命令生成的临时文件存放目录
FORMS 用来描述项目中包含的UI文件列表

一般不推荐路径使用相对路径的方式;
整理源代码目录的方式是引入环境变量,然后通过环境变量来设置pro中的各种路径;
在pro文件中的使用环境变量的语法:

$$(环境变量),比如:$$(TRAINDEVHOME)

也可以在pro文件中定义变量:$$ 变量名称;
qrc文件是Qt的资源描述文件;
将资源描述文件添加到项目,只需要在pro文件加一行;
RESOURCES += ks02_03.qrc
给程序增加控制菜单图标:
RC_ICONS = images/my.ico

1.EXE还是DLL-----TEMPLATE

TEMPLATE = app 表示生成exe
TEMPLATE = lib 表示生成dll
TMEPLATE = subdirs 表示本项目将扫描指定的子目录集合并执行相关操作。该配置经常与SUBDIRS配合使用,比如指定需要国际化的子目录列表时,可使用该配置;

2.用什么开发语言-----LANGUAGE

LANGUAGE表示本项目用那种编程语言进行开发;

3.生成的目标文件名是啥—TARGET

当TARGET=prog时

Windows Linux
TMPLATE = app prog.exe prog
TMPLATE = lib prog.dll prog.so.1.0.0

4.debug还是release—CONFIG

语法 CONFIG += XXX XXX XXX
表示增加某些CONFIG配置项,等号右侧的各个项之间用空格隔开;
语法 CONFIG -= XXX XXX XXX
表示删除某些CONFIG配置项;
CONFIG常用值如下:
release :表示以发布版本进行构建,如果配置中也指定了debug,最后一个配置的内容生效;
debug :表示项目以调试版本进行构建;
debug_and_release:表示项目以debug和release两种模式构建,即构建时同时生成Debug、Release版本的目标程序;
precompile_header:表示可以在项目中使用预编译头文件;
rtti:表示启用RTTI支持,默认使用编译器默认值,关闭使用rtti_off;
stl:表示启用STL支持,默认使用编译器默认值,关闭使用stl_off;
thread:表示启用多线程支持;当CONFIG的取值包含qt时才启用。thread是默认设置;
warn_on:表示编译器应该尽可能多输出警告,如果也指定了warn_off,则最后一个生效;
warn_off:表示编译器应该尽可能少输出警告;
qt:表示需要链接Qt的类库,当需要使用Qt类库时配置该项,在开发服务类应用时,;一般只是用Qt的pro文件来组织项目并完成构建,然后使用其他类库或者自行编写类库,所以编写服务类应用一般不用qt;
写成CONFIG -= qt
C++11:表示启用C++11支持,如果编译器不支持C++11,则该配置项被忽略。默认不支持C++11;
C++14:表示启用C++14支持,如果编译器不支持C++14,则该配置项被忽略。默认不支持C++14;

5.使用Qt的哪些模块-----QT

语法:QT += XXX XXX XXX
当使用QT +=的写法时表示增加某些QT模块,等号右侧的各个项之间用空格隔开;
语法:QT -= XXX XXX XXX
当使用QT -=的写法时表示删除某些QT模块;
默认情况下包含core和gui这两个模块,目的是确保标准的GUI应用程序无须进一步的配置就可以正常构建;

6.各种DIR和各种PATH

INCLUDEPATH用来描述构建项目时应该被搜索的include目录;
DESTDIR用来描述目标文件的存放路径,也就是项目生成的EXE或DLL的存放目录;
MOC_DIR用来描述Qt的moc命令生成的中间文件的存放目录;
OBJECTS_DIR用来描述所有中间文件(obj文件)的存放路径;
RCC_DIR用来描述Qt资源编译器输出文件的存放路径,即:qrc文件转换成qrc_xxx.h文件时的存放路径;
UI_DIR用来描述Qt的uic命令编译UI文件后得到的所有中间文件(ui_xxx.h)的存放路径;

7.FORMS

FORMS用来描述项目用来UI文件列表。这些UI文件在编译时将先被Qt的uic命令处理。编译这些UI文件时所需要的所有依赖的头文件(比如Qt的头文件)和源文件都会被自动添加到项目中。
FORMS = dialog.ui
login.ui

8.HEADERS

HEADERS用来描述项目中用到的头文件列表;
注意: 编写文件路径使用“/”而不是“\”;
可以用相对路径的语法;./…/
可以使用环境变量,比如:$$(TRAINDEVHOME)/include/base.h
有跨行内容时,在行末使用“\”进行换行,并在“\”前加一个空格;

9.SOURCE

SOURCE用来描述项目用到的cpp文件列表。

10.RESOURCE

RESOURCE用来描述项目用到的资源描述文件(qrc);

11.LIBS

LIBS用来描述项目引用的库文件列表。LIBS有-l(小写的L)和-L两种语法;
-l表示库文件名,忽略后缀名;
例如:增加库mylib.lib:LIBS += -lmylib
-L表示库文件所在的路径;
假如要引入/usr/local/myprogram/lib下的mycomm.lib、fesp.lib两个文件;
则要写成LIBS += -L/usr/local/myprogram/lib
-lmycomm
-lfesp

12.TRANSLATIONS

TRANSLATIONS用来描述项目中用到的翻译文件;

13.SUBDIRS

SUBDIRS配置一般同template=subdirs配合使用。该配置项指示本项目包含的子目录列表;

你可能感兴趣的:(Qt)