欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[QT学习笔记] 项目管理文件(*.pro)

程序员文章站 2022-07-14 08:26:21
...

新建项目

  • 默认选项新建项目后,自动生成NewProj.pro文件
    [QT学习笔记] 项目管理文件(*.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