2.1.3 项目模式和项目文件
按下快捷键Ctrl+5或者单击“项目”图标,可以进入项目模式。如果现在没有打开任何项目,则项目模式是不可用的。项目模式分为构建和运行、编辑器、代码风格、依赖关系等多个设置页面,如图2-9所示。如果当前打开了多个项目,那么在界面上方会分别列出这些项目,可以选择自己要设置的项目。
图2-9 项目模式
在“构建和运行”页面可以设置要构建的版本,如Debug版本、Profile版本或Release版本。这3个版本的区别是:Debug版本程序包含了调试信息,可以用来调试,但生成的可执行文件很大;而真正发布程序时要使用Release版本,不带任何调试符号信息,并且进行了多种优化;另外,Profile是概述版本,带有部分调试符号信息,在Debug版本和Release版本之间取一个平衡,兼顾性能和调试,性能较优且方便调试。
这里有一个“Shadow build”选项,就是所谓的“影子构建”,其作用是将项目的源码和编译生成的文件分别存放,就像前面创建项目时看到的,helloworld项目经编译构建为Debug版本后会生成build-helloworld-Desktop_Qt_6_5_0_MinGW_64_bit-Debug文件夹,里面放着编译生成的所有文件。将编译输出与源码分别存放是个很好的习惯,尤其在使用多个Qt版本进行编译时更是如此。“Shadow build”选项默认是选中的,如果想让源码和编译生成的文件放在同一个目录下,那么也可以将这个选项取消勾选。“构建的步骤”“清除的步骤”和“构建环境Build Environment”等选项一般不用设置,如果对编译命令不是很熟悉,这里的设置保持默认即可。
在“编辑器”设置页面中,可以设置默认的文件编码、制表符和缩进、鼠标和键盘的相关功能,这些都是默认的全局设置,一般不建议修改,当然也可以按照自己的习惯进行自定义设置;在“代码风格”设置页面中,可以自定义代码风格,还可以将代码风格文件导出或者导入,这里默认使用了Qt的代码风格;如果同时打开了多个项目,在“依赖关系”设置页面中,可以设置它们之间的依赖关系;Qt Creator集成的Clang Tools可以通过静态分析来发现C、C++和Objective-C代码中的问题,具体使用方法可以在帮助中通过Using Clang Tools关键字查看。对于初学者而言,这些选项一般都不需要更改,这里不作过多介绍。
下面我们看一下例2-1(即源码路径为src\02\2-1的程序)中helloworld项目的helloworld.pro项目文件的内容:
1 QT += core gui 2 3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 5 CONFIG += c++17 6 7 # You can make your code fail to compile if it uses deprecated APIs. 8 # In order to do so, uncomment the following line. 9 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 10 11 SOURCES += \ 12 main.cpp \ 13 hellodialog.cpp 14 15 HEADERS += \ 16 hellodialog.h 17 18 FORMS += \ 19 hellodialog.ui
第1行声明了这个项目使用的模块。core模块包含了Qt的核心功能,其他所有模块都依赖于这个模块;而gui模块提供了窗口系统集成、事件处理、OpenGL和OpenGL ES集成、2D图形、基本图像、字体和文本等功能。当使用qmake工具来构建项目时,core模块和gui模块是被默认包含的,也就是说,编写项目文件时不添加这两个模块也是可以编译的。其实,模块就是很多相关类的集合。读者可以在Qt帮助中通过Qt Core和Qt GUI关键字来查看这两个模块的相关内容。第3行添加了widgets模块。这行代码的意思是,如果Qt主版本大于4(也就是说当前使用的是Qt 5或者更高版本),则需要添加widgets模块。其实,直接使用“QT += widgets”也是可以的,但是为了保持与Qt 4的兼容性,建议使用本例中的这种方式。Qt Widgets模块提供了经典的桌面用户界面的UI元素集合,简单来说,所有C++程序用户界面部件都在该模块中。第5行开启对C++17的支持。第7~9行是注释信息,第7行和第8行的意思是,如果取消第9行的注释,那么当自己的代码使用了Qt 6中已经标记为过时的API,编译时就会出错。第11~19行分别是项目中包含的源文件、头文件和表单文件。这些文件都使用了相对路径,因为都在项目目录中,所以只写了文件名。
这里还要简单介绍一下那个在项目目录中生成的.pro.user文件,它其实是一个XML文档,包含了本地构建信息,例如Qt版本和构建目录等。可以用记事本或者写字板打开这个文件,以查看其内容。使用Qt Creator打开一个.pro文件时,会自动生成一个.pro.user文件。因为读者的系统环境都不太一样,Qt的安装与设置也不尽相同,所以如果要将自己的源码公开,那么不需要包含这个.user文件。如果要打开别人的项目文件,但里面包含了.user文件,则Qt Creator会弹出提示对话框,询问是否载入特定的环境设置,这时应该选择“否”,然后选择自己的Qt套件即可。