首页 Qt查看源码总结帖
文章
取消

Qt查看源码总结帖

前言

在学习osg的时候养成一个习惯,就是一边学习一边打开自制的帮助文档,看着源码,一边去编码。然后结合很久之前就想学习Qt源码,拿到一份Qt类图之类的,对Qt学习实践进行一些总结。所以趁此机会,鼓捣了一下Qt中如何使用源码的做法。 此处实名感谢Qt开源社区群的の大佬,尽心尽力地给出许多有用的建议,一步一步进行指导。

实践

做法一

基于从osg处学来的操作,我先是利用doxygen扫描Qt的源码(这里默认已经添加了Qt Src组件),生成一份.chm的帮助手册。 这个做法的优点是,可以即时查看源码,查看类图,比如想用到QImage类,那直接索引QImage,查看API,查看实现,查看继承关系,相类似的类等等,是一种将实践工作与学习结合在一起的方法。 …But,跟osg源码组织形式不一样,Qt源码的组织结构非常复杂,各种调用封装很绕,不是直接一个文件夹下.h.cpp扫描就行了,而且还有许多类似于example之类的文件,导致扫描正则很难写,扫描速度很慢。(编译了一天一夜了,还在编译,大小在3G+),以后完成了效果不错再补充一份DoxygenFile. 做法一被我放弃了…编译了两天还没成功,我电脑可能先炸..不过好像可以续编译,以后有时间继续吧… 做法一的替代:找到一个挺不错的网站,就是Qt的源码树,在实时查找翻看源码时挺实用的(https://code.woboq.org/qt5/)

做法二

一个折中的做法是调试进入源码。 关键是:Qt Src文件,以及pdb文件。

获取PDB:

处理PDB

  • 下载好PDB之后,解压,放到同一个文件夹(即所有.pdb放在一起),我解压后pdb主要分在bin和lib两个文件夹,这也没关系,添加两个路径即可。
  • 在Qt creator中工具->调试器->CDB Paths,添加上述路径(这里默认已经配置好CDB,若没有CDB,建议重装或参考相应的教程):在这里插入图片描述

  • 同理,在vs中也同样,工具->选项->调试->符号添加路径即可:在这里插入图片描述

添加Qt源码

  • Qt Creator,同样工具->调试器->概要->添加Qt源码(很多教程只教这一步,但是没有pdb是不行的)在这里插入图片描述 - 这时断点,F11即能进入源码:在这里插入图片描述
  • VS:在这里插入图片描述

此时,成功调试进入源码部分。

总结

回味了一下,其实实时查看源码这个操作的确不应该被直接支持(指的是在代码里通过ctrl+左键查看)。因为我们的工程不可能包含Qt整个源码工程,自然链接不到。(这里据说可以通过在qt creator同时打开源码的qt.pro项目,即可实时查看源码,但本人一直用不了该项目,各种报错。因为没有刚需,暂时不研究了)。 而一方面直接通过qt assist查看Qt提供的API,一方面要深入研究时通过源码树网站跳转至相应的源码介绍页面(包括直接的源码,以及详细介绍,相关链接,类图等等)。另一方面调试时也能深入qt的逻辑层次,更好判断自己的应用是否正确。这似乎已经达到预期的目标了。

本文由作者按照 CC BY 4.0 进行授权

osgEarth添加图例

Free Heap block xx modified at xxafter it was freed 堆内存出现野指针错误