前言
C/C++ 中,头文件的引入通常使用 #include
一般规定,#include <>
用于引入系统标准头文件,优先从系统路径中搜索;#include ""
用于引入用户自定义的头文件 ,优先从当前目录搜索
Qt 中标准头文件的搜索路径
通常新建一个 Qt 项目,例如 GUI 项目,可以看到 #include <QMainWindow>
然而在 Qt 的 include 目录下(D:\workstation\Qt\qt652\6.2.4\msvc2019_64\include
),可以看到存放的并没有 QMainWindow 文件,取而代之的是 Qt 的附加模块
实际上在 Qt 项目工程文件中已经包含了 include 目录下的二级目录 QtCore、QtGui 和 QtWidgets
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
即添加了 include 目录下的 QtCore、QtGui 和 QtWidgets 目录。而 QMainWindow 就在 QtWidgets 目录下
Qt 中标准头文件的包含过程
用记事本打开 QtWidgets 目录下的 QMainWindow 文件,即可发现文件内容仅有一行:
#include "qmainwindow.h"
即 QMainWindow 真正的实现在 QtWidgets 目录下的 qmainwindow.h,在 Qt 项目进行编译时,会将该文件中的代码替换 #include <QMainWindow>