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: 找到一些代码的原始定义, 有哪些函数一目了然!我们举两个简单的例子。
在exampleB1.cc的77行
physicsList->SetVerboseLevel(1)
, 如果我们想知道SetVerboseLevel(1)的参数1
到底是个啥意思呢?那就用鼠标选中 SetVerboseLevel,然后右键打开Follow Symbol Under Cursor,很快你就会被带到这个声明这个函数的头文件 G4VModularPhysicsList.hh, 然后就能看到具体的说明了。细心的读者会注意到,在 G4VModularPhysicsList.hh 时如果想要切换到源代码 G4VModularPhysicsList.cc 会没有效果。因为这是Geant4库的源代码,而不是用户自己的代码(这里假设example B1是用户在编辑的代码),所以要想切换过去,必须先Open File or Project,导入geant4目录下的CMakeLists.txt。 操作方法同导入examples时一模一样。
在 B1PrimaryGeneratorAction.cc 中选中
G4ParticleGun
,同样Follow Symbol Under Cursor, 你就会看到 G4ParticleGun.hh 中详细的函数介绍,包括有SetParticleDefinition(), SetParticleEnergy()
等等,一目了然。
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 支持? [复制]