Qt查看源码总结帖

2020.3.1更新

前言

在学习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的逻辑层次,更好判断自己的应用是否正确。这似乎已经达到预期的目标了。

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
选择Qt组件还是Qt源代码,应根据项目的具体需求进行评估和决策。 Qt组件是指Qt平台提供的一系列高度封装、易用的组件,可以有效地提升开发效率和代码质量。这些组件已经经过充分的测试和验证,具有稳定性和可靠性。选择Qt组件可以快速地构建应用程序,减少重复性的工作,提高开发效率。特别是对于一些常见的功能需求,例如图形界面、网络通信、数据库操作等,Qt组件提供了丰富的选项,可以满足各种开发需求。 Qt源代码则是指Qt平台的开源代码,具有高度灵活性和可定制性。选择Qt源代码可以在有特定需求的情况下,深入了解和定制Qt框架的内部实现,以满足项目的特殊要求。特别是在需要进行底层功能扩展、优化或者修复bug时,Qt源代码可以提供更直接的操作方式。同时,通过对源代码的研究和调试,也可以加深对Qt框架的理解和掌握。 综上所述,选择Qt组件还是Qt源代码应根据项目的需求来决策。如果项目对开发效率和稳定性要求较高,且需要的功能在Qt组件已经有完备的实现,可以优先选择Qt组件。如果项目对灵活性和定制性要求较高,或者需要做一些底层的功能扩展或者调优,可以选择Qt源代码进行开发。当然,根据具体情况,也可以在使用Qt组件的同时,辅以对Qt源代码的研究和定制来满足项目的特殊需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值