[QT学习笔记] 项目管理文件(*.pro)
程序员文章站
2022-07-14 08:26:21
...
新建项目
- 默认选项新建项目后,自动生成NewProj.pro文件
代码结构解析
基本语法
-
使用#号,作单行注释。
-
=你可以把等号左边的类型理解为变量,等号右边的理解为值。
-
+=你可以把左边的理解为变量列表,右边的为需要加到列表中的值。
-
\ 可以分行书写,但仍为一行。
完整代码
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
逐行解析
⇩ 第1行,为Qt 类库以模块的形式组织各种功能的类,根据项目涉及的功能需求,在项目中添加适当的类库模块支持。
QT += core gui
上述表示项目中加入 core gui 模块,core是核心gui是 GUI 设计模块,控制台程序可以不加
也可根据需求添加其他的类库模块,如sql数据库模块,qchart图表模块
比如:
QT += core gui sql charts
⇩ 第2行,条件执行语句,表示当 Qt 主版本大于 4 时,才加入 widgets 模块。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
⇩ 指定编译器选项和项目配置,值由qmake内部识别并具有特殊意义。
CONFIG += c++11
以下配置值控制编译标志:
选项 | 说明 |
---|---|
release | 项目以release模式构建。如果也指定了debug,那么最后一个生效。 |
debug | 项目以debug模式构建。 |
debug_and_release | 项目准备以debug和release两种模式构建。 |
debug_and_release_target | 此选项默认设置。如果也指定了debug_and_release,最终的debug和release构建在不同的目录。 |
build_all | 如果指定了debug_and_release,默认情况下,该项目会构建为debug和release模式。 |
autogen_precompile_source | 自动生成一个.cpp文件,包含在.pro中指定的预编译头文件。 |
ordered | 使用subdirs模板时,此选项指定应该按照目录列表的顺序处理它们。 |
precompile_header | 可以在项目中使用预编译头文件的支持。 |
warn_on | 编译器应该输出尽可能多的警告。如果也指定了warn_off,最后一个生效。 |
warn_off | 编译器应该输出尽可能少的警告。 |
exceptions | 启用异常支持。默认设置。 |
exceptions_off | 禁用异常支持。 |
rtti | 启用RTTI支持。默认情况下,使用编译器默认。 |
rtti_off | 禁用RTTI支持。默认情况下,使用编译器默认。 |
stl | 启用STL支持。默认情况下,使用编译器默认。 |
stl_off | 禁用STL支持。默认情况下,使用编译器默认。 |
thread | 启用线程支持。当CONFIG包括qt时启用,这是缺省设置。 |
c++11 | 启用c++11支持。如果编译器不支持c++11这个选项,没有影响。默认情况下,支持是禁用的。 |
c++14 | 启用c++14支持。如果编译器不支持c++14这个选项,没有影响。默认情况下,支持是禁用的。 |
⇩ 定义编译选项。QT_DEPRECATED_WARNINGS表示当Qt的某些功能被标记为过时的,那么编译器会发出警告。
DEFINES += QT_DEPRECATED_WARNINGS
⇩ 关联源文件。
SOURCES += \
main.cpp \
mainwindow.cpp
⇩ 关联头文件。
HEADERS += \
mainwindow.h
⇩ 关联UI文件。
FORMS += \
mainwindow.ui
⇩ 默认部署设置
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target