发表人:ds 2022-04-24 17:56:40 最新回复: 2022-04-24 17:56:40
在创建helloqt项目之后,会在左侧项目列表中列出其项目结构,将项目中的所有节点展开之后,如下图所示:

在项目列表中helloqt表示项目名称,加粗字体显示表示这个项目是当前激活的项目,在QtCreator的项目管理中,始终会有一个当前激活的项目,默认的编译、构建、运行等都是对当前项目而言。一般在开发过程中,如果需要切换当前项目,可以在项目管理视图中选中要激活的项目节点,
并通过右键菜单“Set <项目名称> as Active
Project”指定当前激活项目,也可以在构建套件选择区的部署中选择当前项目,如下图所示:

项目列表中的文件夹Headers、Sources和Forms均表示文件的分类,QtCreator会根据项目文件(helloqt.pro)的内容,对文件的类型进行分类,其中mainwindow.h是头文件,main.cpp和mainwindow.cpp是源文件,mainwindow.ui是界面文件。
QtCreator的项目文件是一个后缀为“.pro”的文件,本例子对应的是helloqt.pro,这个项目文件是类似一个配置脚本,对项目类型、项目结构、项目文件、QT库、输出目标、编译选项等进行了说明。与其他主流IDE开发工具(Visual Studio等)相比,虽然没有提供图形界面的配置,但是具备很高的灵活性。
项目文件有一套自己的语法规则,使用qmake进行解释,经过qmake解释之后会生成Makefile文件,再由解释Makefile的工具进行编译,在Linux下通常使用make工具来执行Makefile,而在Windows上则使用nmake。由于绝大多数平台都支持基于Makefile的编译,所以Qt的项目文件具备跨平台编译的基础。
qmake以变量的形式来定义每一项配置的具体内容,这里变量和开发中的变量略微不同,这里的变量是多值变量,一个变量可以保存很多的值,可以理解为一个向量类型的变量。例如项目的源文件列表,使用SOURCES变量来表示;项目的头文件列表,使用HEADERS变量标识;界面文件的列表,使用FORMS标识;资源文件的列表,使用RESOURCES标识。掌握了qmake的语法规则,也就掌握了如何编写正确的项目文件。完整的qmake语法,请参考Qt Assistant 的“qmake Language”章节。这里以表格的形式,仅将最常用的语法列出,如下表所示
序号 | 名称 | 分类 | 功能 | 用法 |
1 | 赋值 | 变量编辑 | 给变量赋值 | SOURCES = helloqt.cpp |
2 | 增加值 | 变量编辑 | 给变量增加一个新值 | SOURCES += main.cpp |
3 | 移除值 | 变量编辑 | 移除变量中的一个值 | SOURCES -= main.cpp |
4 | 增加唯一值 | 变量编辑 | 给变量增加一个唯一值,如果存在则不增加,不存在则增加 | SOURCES *= main.cpp |
5 | 替换值 | 变量编辑 | 使用正则表达式替换原有值 | DEFINES ~= s/QT_[DT].+/QT |
6 | 变量展开 | 变量展开 | 以变量值的形式替换变量本身 | SOURCEFILES = $$SOURCES,赋值之后SOURCEFIES和SOURCES的内容相同 |
qmake语法包含了很多的内置变量,这些内置变量主要可以分为:项目配置相关、源文件相关、配置相关、QT内置变量等。这里介绍一下常用变量的功能和用法,如下表所示,更详细的项目配置请参考Qt Assistant的“qmake Variable Reference”。
序号 | 名称 | 分类 | 功能 | 用法 |
1 | TEMPLATE | 项目相关 | 设置项目模板的类型,最常见的值有:“app”表示当前项目是应用程序;“lib”标识当前项目是一个库程序 | TEMPLATE = app |
2 | TARGET | 项目相关 | 设置目标的输出名称 | TARGET = helloqt |
4 | CONFIG | 项目相关 | 配置选项,这个配置选项功能非常多 | CONFIG += c++11,指定编译的时候,使用C++11的标准编译。等价于编译选项增加了-std=gnu++11 |
5 | DESTDIR | 项目相关 | 指定输出目录 | DESTDIR = ../bin,输出到当前项目所在目录上一级目录的bin目录下 |
6 | SOURCES | 文件相关 | 源文件列表 | SOURCES += main.cpp helloqt.cpp |
7 | HEADERS | 文件相关 | 头文件列表 | HEADERS += helloqt.h |
8 | FORMS | 文件相关 | 界面文件列表 | FORMS += mainwindow.ui |
9 | RESOURCES | 文件相关 | 资源文件列表 | RESOURCES += resources.qrc,添加后缀为qrc的资源文件 |
10 | DEFINES | 编译相关 | 宏定义 | DEFINES += QT_DEPRECATED_WARRNINGS |
11 | INCLUDEPATH | 编译相关 | 头文件路径 | INCLUDEPATH += ../include |
12 | LIBS | 编译相关 | 库文件路径和库文件 | LIBS += -L/usr/lib64 –lpthread |
13 | QMAKE_CXXFLAGS | 编译相关 | 直接增加编译选项 | QMAKE_CXXFLAGS = -fopenmp |