简述
在使用Qt过程中有时候需要查看源码了解Qt类库的内部实现。那源码在哪呢?我安装了Qt之后怎么找不到源码呀?
安装源码
在安装Qt的时候有一个选项是默认不打勾的,而这个默认不安装的选项就是Source Components(源码),这里我们打上勾,然后进行安装。
安装完之后, 打开 这个目录 E:\Qt5.5.1\5.5\Src , 我们就可以看到Qt的源码了。
下图是QDialog源码所在位置。
打开qdialog.h文件,我们可以看到QDialog的内部声明。
想要看其他库的源码直接在这个E:\Qt5.5.1\5.5\Src目录下查找即可。
调试源码
我们既然能够查看到源码,那可不可以在调试的时候直接进入到源码中进行调试呢?
答案是肯定的。
在安装Qt的时候有两个版本可以进行选择:
- MinGW 版
使用 MinGW 作为默认编译器,MinGW 中附带了 GCC、GDB 等调试工具。所以如果安装 MinGW 版,可以使用 GDB 作为 Qt Creator 中的默认调试器; - MSVC 版
使用 MSVC 作为默认编译器,不附带调试器,所以需要下载微软的CDB(Microsoft Console Debugger)调试器。(文章下方提供了下载链接)
在我们调试源码之前,必须要确保在安装Qt的时候安装了源码。
下面介绍一下MSVC 版本下进行调试源码。
1、 安装Qt及源码
这里我使用的是官网下载的 qt-opensource-windows-x86-msvc2013-5.5.1 版本。在安装的时候按照上面所叙述的勾选上源码进行安装。
2、 安装 CDB调试器。
在Qt安装完之后,开始安装CDB调试器。
3、配置QCreator
打开QCreator,按照下图步骤进行配置。
这里点击添加Qt源码,选择正确的源码路径。
选完路径后(这里选择源码路径一定要保持源码版本与QCreator版本一致,否则调试时进入源码的位置不正确)。
进入到CDB Paths 选项页中,我们看到这里Qt会自动检测调试器。如果这里未检测到,重新打开QCreator即可。
4、开始调试
在 this->setWindowFlags(Qt::FramelessWindowHint); 位置打上断点,进行调试。
断点停留在 this->setWindowFlags(Qt::FramelessWindowHint); 位置时按F11进行单步调试进入到源码中,我们看到这里可以直接查看源码中的变量值。
以上4步即介绍了如何用QCreator调试Qt源码。调试进入到源码中,我们不仅看到了内部如何来实现,同时也能查看我们设置的参数或者调用的方法是否正确,更利于我们解决问题。