IDE的使用:代码快速浏览(Qt Creator篇)

Posted Geant4不完全学习指南

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDE的使用:代码快速浏览(Qt Creator篇)相关的知识,希望对你有一定的参考价值。

本课目标:学习使用集成开发环境(IDE)来方便代码的浏览
测试系统:Linux/Ubuntu 14.04

有读者反映,学习Geant4的时候要学的C++内容太庞杂,“函数调用好多啊,我们都记不住。” 其实这是对C++和Geant4的一个误解,因为我敢保证用Geant4的专业人士也没几个能背出所有函数名及其功能的,都是靠临时搜索(Google、源代码等)和抄example代码的。

但是,笔者也完全理解这些初学者的想法,毕竟我也是这么走过来的,“最好要有一张完整的地图,告诉我每个函数调用或者类之间都是什么关系。” 虽然现在已经不太在意这些了,不过如果有需要,我可以给大家介绍一下使用Qt Creator来满足这样的需求 (Windows的Visual Studio也是极好的,读者可以自行学习)。本文使用Ubuntu 14.04完成测试,但是其他Linux发行版应该不会有太大差别。

下载、安装Qt Creator

首先去Qt的官网 (https://www.qt.io/download),下载Open Source的版本。我下载到的安装文件是qt-unified-linux-x64-3.0.4-online.run

安装就比较简单了,一路默认到底。唯一需要注意的是,需要把安装文件的可执行权限打开。要么右键修改属性(Properties),然后双击图标。要么使用命令:

1chmod +x qt-unified-linux-x64-3.0.4-online.run
2./qt-unified-linux-x64-3.0.4-online.run

使用Qt Creator

为了配合Geant4, 在Qt Creator(以下简称Qt)打开前需要配置Geant4的环境变量,所以需要在命令行中打开Qt,如下

1source $HOME/geant4/geant4.10.01.p03/bin/geant4.sh
2$HOME/Qt/Tools/QtCreator/bin/qtcreator &

这里我使用了4.10.01 patch03的版本,请各位读者修改成自己的路径。同时,&表示后台运行Qt,不影响该终端的继续使用。

打开Qt界面后,打开工具栏里面的 File > Open File or Project > 选择example目录下的CMakeLists.txt > 点击Configure Project(默认配置就可以,什么也不用修改)。于是大家就可以看到在Qt界面的左手边出现了一个项目列表,我们可以打开浏览任意头文件和源代码(图1),譬如exampleB1.cc。如果打开了多个文件,可以在文件名处切换。

图1:Qt Creator的主界面。如果已经打开过多个文件,可以在顶部文件名处切换。

Qt Creator 三大法宝

除了方便浏览代码以外,Qt Creator还有三大法宝:

  • Switch Header/Source: 在头文件和源代码之间任意切换。使用方法很简单,就是在文件任意地方右键就可以看到这个选项。譬如,在  B1PrimaryGeneratorAction.cc 中可以直接切换到  B1PrimaryGeneratorAction.hh。

  • Follow Symbol Under Cursor: 找到一些代码的原始定义, 有哪些函数一目了然!我们举两个简单的例子。

  1. 在exampleB1.cc的77行 physicsList->SetVerboseLevel(1), 如果我们想知道SetVerboseLevel(1)的参数1到底是个啥意思呢?那就用鼠标选中  SetVerboseLevel,然后右键打开Follow Symbol Under Cursor,很快你就会被带到这个声明这个函数的头文件 G4VModularPhysicsList.hh, 然后就能看到具体的说明了。


    IDE的使用:代码快速浏览(Qt Creator篇)



    细心的读者会注意到,在 G4VModularPhysicsList.hh 时如果想要切换到源代码 G4VModularPhysicsList.cc 会没有效果。因为这是Geant4库的源代码,而不是用户自己的代码(这里假设example B1是用户在编辑的代码),所以要想切换过去,必须先Open File or Project,导入geant4目录下的CMakeLists.txt。 操作方法同导入examples时一模一样。



  2. 在 B1PrimaryGeneratorAction.cc 中选中G4ParticleGun,同样Follow Symbol Under Cursor, 你就会看到 G4ParticleGun.hh 中详细的函数介绍,包括有SetParticleDefinition(), SetParticleEnergy()等等,一目了然。


    IDE的使用:代码快速浏览(Qt Creator篇)


  • Find Usages: 在所有代码中寻找某些特定的代码片段。譬如我们可以在  B1PrimaryGeneratorAction.cc 中选中G4Event,然后右键打开Find Usages, 你就会看到在其他代码中是怎么使用这个类的。另外,搜索的目标不限于Class,也可以是具体的变量,譬如你也可以搜索 fParticleGun




    当然,Linux老司机也许还是更喜欢用find examples/ -name "*cc" | xargs grep fParticleGun。大家各自选择合适的工具就可以了。

最后,我还是想强调,学习Geant4前不一定需要对C++有很深入了解,看example代码时只要掌握大致的精髓。即使遇到不太懂的代码,大家也可以求助于网络。C++虽难,毕竟是死板的计算机语言,没有看不懂的道理。祝大家学习愉快。


以上是关于IDE的使用:代码快速浏览(Qt Creator篇)的主要内容,如果未能解决你的问题,请参考以下文章

Qt-Qt Creator的下载安装与配置(Windows)

从另一个 IDE (Qt Creator) 为 MSVC 编译器设置字符集

Qt Creator 中的 C++11 IDE 支持? [复制]

[Qt Creator 快速入门] 第9章 国际化帮助系统和Qt插件

Qt Creator IDE 中的自定义字体

在 Qt Creator 中浏览 Qt 源代码(在 Windows 中)