搜索
bottom↓
回复: 49

使用Qt Creator阅读C/C++代码

  [复制链接]

出0入25汤圆

发表于 2017-3-4 01:28:27 | 显示全部楼层 |阅读模式

最近论坛里关于Source Insight的帖子特别火,可见很多坛友使用Source Insight来阅读代码

Source Insight功能非常强大,但却也有两个缺点:
1、正版太贵,因此需要破解
2、只支持Windows,不支持Linux和Mac OS

而Qt Creator恰好解决了这两个问题,且对C/C++的解析功能也非常强大,所以推荐给坛友

首先说明下,只需要安装Qt Creator即可实现代码阅读功能,不需要安装编译器和Qt SDK,所以软件并不会特别大

如上,安装包82M,虽然比20多M的Source Insight大不少,但也可以接受


下面简单介绍一下建立工程和使用方法
建立工程过程如下,很简单:




指定要阅读的代码的位置,并给项目起个名称


选择要添加到项目中的文件



如上,左侧窗口显示了项目中的文件、当前文件中定义的结构体、函数等内容
如右侧主窗口所示,将鼠标放在宏、变量、函数上面,会自动显示其定义
并且,对于宏定义条件为假的地方,代码以灰色显示,方便区分

按下Ctrl键,将鼠标放在函数、变量、头文件上,可发现它们会变成超链接,鼠标单击会跳转到其定义处,并可通过编辑器左上角的两个导航键跳回



Find Usages功能可列出项目中所有定义和引用该变量、函数、类型的地方


选中变量、函数按Ctrl+F可高亮显示本文档中所有引用,方便查看


Qt Creator中还有个功能强大的定位器功能,按下Ctrl+K打开,,通过输入特点命令可打开项目中任意文件、文件系统内任意文件、项目中任意符号定义、本文件内任意符号定义等


另外,Qt Creator保存项目信息均是使用简单格式的文本文件,,所以可以非常方便的修改项目配置,如添加宏定义、添加头文件目录、添加新文件等






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-3-4 01:34:07 | 显示全部楼层
看起来很强大,值得一试。

出0入25汤圆

 楼主| 发表于 2017-3-4 01:47:01 | 显示全部楼层

如果源文件是GBK编码的话,正确显示中文需要修改默认编码,如下:

另外,建意将Tab尺寸设为4,如上

开启当前行高亮:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出100入143汤圆

发表于 2017-3-4 07:40:07 来自手机 | 显示全部楼层
si最好用的的是下面那一栏,光标放在调用函数,变量上面,下面立即显示定义,阅读代码方便

出0入0汤圆

发表于 2017-3-4 08:41:30 | 显示全部楼层
顶楼主,qt使用这么长时间,好不知道这个功能

出0入0汤圆

发表于 2017-3-4 08:44:25 来自手机 | 显示全部楼层
用惯了vs助手的人表示,qtcreater只用到了那两个“播放”键,

出0入0汤圆

发表于 2017-3-4 08:49:20 | 显示全部楼层
新技能,GET

出0入8汤圆

发表于 2017-3-4 08:58:36 | 显示全部楼层
zzh90513 发表于 2017-3-4 07:40
si最好用的的是下面那一栏,光标放在调用函数,变量上面,下面立即显示定义,阅读代码方便 ...


确实如此。SI 的 Context Window 用起来非常爽。
不过也 get 到新技能,
谢谢楼主推荐,也看看其他编辑器,比如最近我也在关注 Visual Studio Code。

出0入0汤圆

发表于 2017-3-4 08:59:18 来自手机 | 显示全部楼层
感谢楼主分享

出0入25汤圆

 楼主| 发表于 2017-3-4 10:17:14 | 显示全部楼层
zzh90513 发表于 2017-3-4 07:40
si最好用的的是下面那一栏,光标放在调用函数,变量上面,下面立即显示定义,阅读代码方便 ...


Qt Creator中将光标放到变量、函数上会自动显示变量定义和函数原型定义;想看函数体内容的话按下Ctrl键鼠标单击一下就跳转到函数定义了,,这样使用的话也不见得比Source Insight复杂,,尤其是在小屏幕上Source Insight那样把窗口切成那么小的块并不实用

现在看Qt Creator比Source Insight缺少的一个主要功能是Relation窗口,能图形化的方式显示函数中调用的其他函数,,,

出0入0汤圆

发表于 2017-3-4 10:17:52 | 显示全部楼层
百花齐放啊

出0入8汤圆

发表于 2017-3-4 10:25:41 | 显示全部楼层
XIVN1987 发表于 2017-3-4 10:17
Qt Creator中将光标放到变量、函数上会自动显示变量定义和函数原型定义;想看函数体内容的话按下Ctrl键 ...

SI 的 Context Window 主要的优点不在于原型,在于可以快速同时浏览函数实现。
我觉得,对于 IT 从业人员,其实对于大屏幕,是要有追求的。

出0入25汤圆

 楼主| 发表于 2017-3-4 10:33:43 | 显示全部楼层
security 发表于 2017-3-4 10:25
SI 的 Context Window 主要的优点不在于原型,在于可以快速同时浏览函数实现。
我觉得,对于 IT 从业人员 ...


Ctrl+鼠标单击 直接跳过去看代码实现也挺快,而且是在最大的主窗口看,我觉得这种用法也不比Source Insight的Context Window差

出100入143汤圆

发表于 2017-3-4 10:40:16 | 显示全部楼层
security 发表于 2017-3-4 10:25
SI 的 Context Window 主要的优点不在于原型,在于可以快速同时浏览函数实现。
我觉得,对于 IT 从业人员 ...

恩,我在27寸大屏上用的,si在大屏上用着很爽

出0入0汤圆

发表于 2017-3-4 10:41:45 | 显示全部楼层
XIVN1987 发表于 2017-3-4 10:33
Ctrl+鼠标单击 直接跳过去看代码实现也挺快,而且是在最大的主窗口看,我觉得这种用法也不比Source Insi ...

大部分时间是不要跳转的,只是想快速看看实现原型。跳转会造成思维断档

SI是抓到了痛点的

推荐你试试

出0入8汤圆

发表于 2017-3-4 10:42:21 | 显示全部楼层
XIVN1987 发表于 2017-3-4 10:33
Ctrl+鼠标单击 直接跳过去看代码实现也挺快,而且是在最大的主窗口看,我觉得这种用法也不比Source Insi ...

就这功能而言,Qt Creator 有的,SI 也有,而且还多一种选择。
现在的竞争,已经是白热化了,没有谁能秒杀谁,
适合自己的就是好的。

出0入8汤圆

发表于 2017-3-4 10:43:10 | 显示全部楼层
本帖最后由 security 于 2017-3-4 10:44 编辑
FireHe 发表于 2017-3-4 10:41
大部分时间是不要跳转的,只是想快速看看实现原型。跳转会造成思维断档

SI是抓到了痛点的


你用更简洁直接的描述,get 到 SI 的精髓了。

出0入25汤圆

 楼主| 发表于 2017-3-4 10:44:20 | 显示全部楼层
FireHe 发表于 2017-3-4 10:41
大部分时间是不要跳转的,只是想快速看看实现原型。跳转会造成思维断档

SI是抓到了痛点的


如果只看函数原型的话,直接把光标放到函数调用处就会自动弹出来,不需要跳转,,我1楼说了呀!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入8汤圆

发表于 2017-3-4 10:44:58 | 显示全部楼层
XIVN1987 发表于 2017-3-4 10:44
如果只看函数原型的话,直接把光标放到函数调用处就会自动弹出来,不需要跳转,,我1楼说了呀!!
...

原型 + 实现。

出0入0汤圆

发表于 2017-3-4 10:58:33 | 显示全部楼层
哇,这个也行?
习惯SI了,虽然也装QT CREATER.

出0入0汤圆

发表于 2017-3-4 11:05:10 来自手机 | 显示全部楼层
其实把,都用用就知道了,si很棒,除了老了点,其他都很棒

出0入0汤圆

发表于 2017-3-4 11:06:47 | 显示全部楼层
还是SI的舒服 用习惯了,看代码没有SI痛苦惨了。

出40入42汤圆

发表于 2017-3-4 11:13:20 | 显示全部楼层
纯以看代码论,个人觉得SI是最合适的

当然,我们电工喜欢边看边修改边调试的,更喜欢代码功能强大的且带编译下载的IDE咯

出0入8汤圆

发表于 2017-3-4 11:18:17 | 显示全部楼层
zt2012 发表于 2017-3-4 11:05
其实把,都用用就知道了,si很棒,除了老了点,其他都很棒

SI 出 4.0 版本了,
你还不知道?
现在很年轻,更强大了。

出0入8汤圆

发表于 2017-3-4 11:23:49 | 显示全部楼层
落叶知秋 发表于 2017-3-4 11:13
纯以看代码论,个人觉得SI是最合适的

当然,我们电工喜欢边看边修改边调试的,更喜欢代码功能强大的且带编 ...

看来我不是合格的电工,我只是一个码农。
我一直都是用 SI + IAR/MDK 双软件的开发模式。

出0入0汤圆

发表于 2017-3-4 11:35:16 | 显示全部楼层
还是用SourceInsight读代码比较好?

出0入8汤圆

发表于 2017-3-4 11:38:17 | 显示全部楼层
本帖最后由 security 于 2017-3-4 11:39 编辑
meerlin 发表于 2017-3-4 11:35
还是用SourceInsight读代码比较好?


你去都试试就知道了。
不过我以十年的嵌入式软件从业经验,告诉你:我一路走来, 所在的 teams 里面的绝大多数 members,都使用 SI,当然不止用于读代码,也包括码代码。

出0入0汤圆

发表于 2017-3-4 12:10:28 | 显示全部楼层
速率反应怎么样?有没有si流畅?

出0入0汤圆

发表于 2017-3-4 12:13:09 | 显示全部楼层
XIVN1987 发表于 2017-3-4 10:44
如果只看函数原型的话,直接把光标放到函数调用处就会自动弹出来,不需要跳转,,我1楼说了呀!!
...

建议你试试SourceInsight


我用SI很多年了。这些年也一直在不断寻找能替代SI的编辑器。很可惜,没有

从VS、CB、ES等等一路试过来的,很多都宣称多好多好的,虽然是有一些特有的亮点,但本质上没有抓住嵌入式开发的痛点

嵌入式的开发,跟PC端软件的开发有很大的不同。大型软件的开发,基本上有很完善的框架和结构,比如操作系统,系统API等等。这个时候开发人员对于整个系统流程上是不需要操心太多的。所以对边看原型实现边写代码的需求不强烈。

而嵌入式开发不同,特别是小型的前后台系统,状态机系统,这个时候需要码农自己把握所有细节,经常要考虑状态的变化,函数的调用等等。在这个点上,SI几乎是无可替代的。

目前在这方面,能够跟SI一较高低的就是SE了。SE的其他方面比SI强大很多,包括跨平台,还有在SI3.5时代SE就早早支持了unicode等等。不过SE早期的版本自动完成功能强制区分大小写,还有现在最新版本的导航功能弱得实在无力吐槽。所以我一直也没换过SE。

出0入0汤圆

发表于 2017-3-4 12:14:11 来自手机 | 显示全部楼层
用了两年了,自从用了SI就没换过其他软件,特别是4.0很棒的软件!

出40入42汤圆

发表于 2017-3-4 12:28:30 | 显示全部楼层
security 发表于 2017-3-4 11:23
看来我不是合格的电工,我只是一个码农。
我一直都是用 SI + IAR/MDK 双软件的开发模式。 ...

也是过SI+IAR/MDK这种形式,但作为一个懒人,软件切换是一堵厚墙  

出0入25汤圆

 楼主| 发表于 2017-3-4 12:46:30 | 显示全部楼层
FireHe 发表于 2017-3-4 12:13
建议你试试SourceInsight


多谢推荐,我觉得对于阅读代码,有以下几个主要功能就很好:快速显示变量定义/函数原型、快速跳转到函数/类型定义并返回、Find Usage列出项目中所有引用该变量/函数的位置、列出当前文档中符号(函数、类型定义)、快速定位整个项目中的符号

我觉得Qt Creator这几个功能都有,而且感觉用起来也挺不错,所以打算先就用这个了,,
当然还有一个原因:我住的地方只有一个14寸的笔记本,Source Insight那种将窗口分割成多个的用法在小屏幕上不太好用,,而Qt Creator纵向空间比较大,连工具栏都省了、Page Tab也做的极窄,,很适合在小屏幕的笔记本上使用

暂时发现Qt Creator相对于Source Insight少了的功能就是图形化的Relation窗口,,希望以后Qt Creator能添加此功能吧

出0入0汤圆

发表于 2017-3-4 12:51:34 | 显示全部楼层
vs助手是最强大的,可惜只能对vs ide识别

出0入8汤圆

发表于 2017-3-4 13:44:12 | 显示全部楼层
XIVN1987 发表于 2017-3-4 12:46
多谢推荐,我觉得对于阅读代码,有以下几个主要功能就很好:快速显示变量定义/函数原型、快速跳转到函数 ...

我跟你分享一下我的经历,我就不说 SI 有什么优点,就以使用率来说事:

我前面两家公司,都是全国软件百强企业、国内 A 股上市公司,都是 SI 占绝对主流,
在上一家公司,部门也都是用笔记本办公居多,我用的也是 14 寸笔记本,用 SI 毫无违和感。
有不少同事用的屏幕更小,但并未阻碍他们用 SI。

说一句给在嵌入式 C/C++ 领域奋斗的同学们:
如果没有信仰图腾的话,就去随大众,去看看 SI 吧,至于网上流传的 SI  的 quicker.em 宏,本身就是菊花公司流露出来的。
如今的 SI 4.0 版本,更是登峰造极。

出0入0汤圆

发表于 2017-3-4 13:48:45 来自手机 | 显示全部楼层
si4安装文件20M,但帮助文件chm占了15M。所以几乎没有这么小巧又强大的工具。而且用qt creator看下uboot或linux内核的代码,你就知道可不可以取代了。现在si4最大的遗憾是不能跨平台。

出0入0汤圆

发表于 2017-3-4 13:55:55 | 显示全部楼层
不错的分享,顶一下

出0入4汤圆

发表于 2017-3-4 13:56:56 来自手机 | 显示全部楼层
在linux可以装wine来解决跨平台的问题。

出0入25汤圆

 楼主| 发表于 2017-3-4 14:17:19 来自手机 | 显示全部楼层
hiberhe 发表于 2017-3-4 13:48
si4安装文件20M,但帮助文件chm占了15M。所以几乎没有这么小巧又强大的工具。而且用qt creator看下uboot或l ...

没想取代,另一个不错的选择而已,,看代码用啥的都有,Vi、Eclipse、VSC、Atom、Sublime都有人用

出0入0汤圆

发表于 2017-6-19 13:27:27 | 显示全部楼层
请问有代码格式自动对齐命令吗?就是VS中的Alt+F8功能

出0入0汤圆

发表于 2017-6-19 14:21:15 | 显示全部楼层
有啊,选中需要格式化的代码,然后Ctrl+i

出100入101汤圆

发表于 2017-6-19 16:48:16 | 显示全部楼层
security 发表于 2017-3-4 11:23
看来我不是合格的电工,我只是一个码农。
我一直都是用 SI + IAR/MDK 双软件的开发模式。 ...


是用SI写代码么?

出0入8汤圆

发表于 2017-6-19 17:14:28 | 显示全部楼层
fengyunyu 发表于 2017-6-19 16:48
是用SI写代码么?

是的,SI 用来码代码。
IAR/MDK 只用来编译和调试。

出0入0汤圆

发表于 2017-6-20 16:47:40 | 显示全部楼层
qt creator 看代码,mark一下  

出0入0汤圆

发表于 2017-8-22 15:36:03 | 显示全部楼层
1.这样加进去好像不可以新建文件(.c .h)?
2.QT查看时生成的附属文件不能当独放一个文件夹下面--

出0入8汤圆

发表于 2017-12-23 20:14:21 来自手机 | 显示全部楼层
FireHe 发表于 2017-3-4 12:13
建议你试试SourceInsight



si有两个硬伤,一个是带宏的函数不能自动识别,另一个是条件编译不能自动解析,必须在Condition那里设置一下宏的值才行,而qt没有这方面的问题,常用的编辑器si ue se vs code 我都用过,最后选了qt creater

出0入25汤圆

 楼主| 发表于 2017-12-23 20:31:04 | 显示全部楼层
ckhf 发表于 2017-8-22 15:36
1.这样加进去好像不可以新建文件(.c .h)?
2.QT查看时生成的附属文件不能当独放一个文件夹下面-- ...


可以的,两个需求都可以
工程文件里的RTOS103-QtCreatorAA.files列出了包含在Qt Creator工程里的所有文件,,这就是个简单的文本文件,,可以用文本编辑器打开随意修改
所以新建文件加进去只需要在RTOS103-QtCreatorAA.files中加一行此文件的路径即可;至于第二个问题,那就是相对路径的问题,当然可以实现了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-12-24 16:57:17 | 显示全部楼层
我也说一句吧 SI 看C语言代码 很给力  看C++代码就有些吃力

我用的3.5的版本

出0入0汤圆

发表于 2018-1-11 09:06:51 | 显示全部楼层
slickedit比souceinsight好用

出0入0汤圆

发表于 2019-3-13 11:53:33 | 显示全部楼层
zzh90513 发表于 2017-3-4 07:40
si最好用的的是下面那一栏,光标放在调用函数,变量上面,下面立即显示定义,阅读代码方便 ...

是啊,我在sublime text一直想找到类似的插件,就是没能找到
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 20:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表