自学编程,从此开始

上第2学堂,听有趣的编程课

课文: 《安装Qt Creator》 (点击查看完整内容:视频+评测+讨论+……)

作者:第2学堂

下载、安装、配置、试用你的第一款 IDE: Qt Creator

课文题图

 

安装 Qt Creator

1、简介

世界上有这么一个C++第三方库。它被用于写 操作系统图形界面 、用于写 网络程序 、用于写类似汽车系统中运行的嵌入式程序,还能写 Android 甚至 iOS 的应用……不要惊讶,这就是 Qt 。

关键是,它还顺便出了一款非常专业的、通用多个操作系统的 C++集成开发环境,叫Qt Creator。我们将使用它作为教学中——事实上,实际工作中也大有人用——的IDE。

支持 C++的IDE 非常之外,但我有几项挑剔的要求:

1、要跨平台。因为将来参与C++编程工作,多数情况下不会只守在Windows上。

2、IDE的各项辅助功能,要能较好的兼容 C++ 11 以上的新标准。这对新人学习非常重要。事实上之前我一直使用 Code::Blocks 这款更加轻量的跨平台IDE教学C++,但可惜它的对C++11新标准的代码提示等功能支持度不够。

3、运行要快。

2、下载 Qt Creator

Qt 官网地址: www.qt.io ,种种原因,国内访问速度不快,幸好有国内多个大学在提供镜像,我们使唤用中国科技大学 提供的镜像地址,入口是: http://mirrors.ustc.edu.cn/ 。如果你不想找最新的,就想本课程当前使用4.7.0的版本,那么,这是 QtCreator的 直接下载网址:

感谢中国科技大学。

3、安装 Qt Creator

运行下载后得到的可执行程序。

4、配置中文界面

主菜单 Tools → Options ,弹出配置对话框,左边选择 “Environment”,左边进入第一页"Interface",找到“Language”选项,切换为 “Chinese (China)”,或者,就选择语言列表中的第1项“” ——如果你使用的是中文操作系统的话。

设置后,确认退出,再退出 Qt Creator ,重启后就能看到中文界面的主菜单项,以及各界面元素的文字。不过,也会存在某些界面元素的文字未被翻译的情况。

5、配置代码编辑器

程序员,又称“码农”。代码编辑器就是我们的锄头,这锄头一定得顺手。

运行 Qt Creator,和上一步同样的方法调出配置对话框 。这次左边选 “文本编辑器”,就会在右边发现Qt Creator (其它IDE 通常也如此)中,编辑器可以配置项很多。视频里重点提到以下几组:

5.1 字体和颜色

网上一搜索 “写程序 最合适的 字体”,通常就能找到不少确实看起来很舒服、并且显得很高端大气的编程英文字体。不过,记住一点,一定要是“等宽/MONO”字体。等宽字体的意思是,每个字符,比如字母' i' 和字母 'W'占用的宽度是一样的。如果你下载了中意的字体,可以在此设置。

颜色不要在这里设置,因为通常我们会为不同的编程语言设置不同的颜色高亮方案。如果你想设置C++代码的高亮方案,请试试在左边找到 “C++”,就在“文本编辑器” 往下几项。

5.2 编辑行为

(在观看这一段视频时,请无视视频中梦游般的鼠标……)

  1. “制作表和缩进”组:能选“空格”的请都选“空格”,比如“仅空格”以及“用空格对齐”。再者,制作符尺寸和缩进尺寸都设置为4。到底是使用空格缩进,还是使用制表符(Tab键),这是一件触及精神、甚至是深入灵魂层面的信仰,身为老师,我当然要执拗地传播我的信仰。
  2. “文件编码”组: 文件编码中的“默认编码”,请选择“System” (通常这应当就是默认选中项)
  3. “打字”组: 开启自动缩进。

5.3 显示

  1. “文件折行”组: 不选 “开启文件折行”。选中“显示右边空白”,并设置为80列。这个主要用来提示我们写的某行代码是不是太行了。
  2. “显示”组 : 左边的前三项 “显示行号”、“显示折叠标志“、“标记文本改变“)全选上。左边的后三项“滚动时居中光标“、”自动折叠开头的注释“,“Highlight search results on the scrollbar”(意思是在滚动条上高亮搜索结果的对应的位置) 也强烈建议选上。
  3. 还是“显示”组 : 右边的“亮显示当前行”和“Display file encoding”选上。

##6、集成GCC 套件

上一节课我们安装GCC套件,这节课将该套件中编译器(又区分为C和C++编译器)、调试器集成到Qt Creator中。另外,还需要将它们在Qt Creator配置成一个“套件”(Kits)——作用其实就是告诉Qt Creator ,这个C编译器和这个C++编译器,以及这个调试器(GDB)它们本来就是一家的,可以协同工作。将来工作有需要,大家可以在Qt Creator 中配置“另一家子”的套件,比如微软家的 Visual C++的编译器和调试器等。或者,如果大家同时安装了32位和64位的GCC套件,并且确实有编译32位程序的需要——比如要支持一些老机器——也可以加上32位的g++、gcc 和 GDB ,然后将它们归成一组套件。

注意,如果你的机器安装有Visual C++、或者Windows其它发行版本的GCC,有可能会被Qt Creator自动检测出来,它们将位于 “Auto-detected” 节点下。课程中的代码基本上通行于各类C++编译器套件,但我们仍然建议各位使用课程推荐的mingw-w64。

视频中,我们配置了编译器、调试器,但链接器呢?链接器通常和编译器紧密相关,可以这么理解:我们所配置的g++.exe或gcc.exe既可以当编译器,也可以当链接器。

7、试用 QtCreator

###7.1 第一步:向导、模板选择

Qt Creator 提供了一些项目创建向导和文件创建向导。这里的向导的意思基本就是基于某个现成的模板做一些修改,以快速生成相关项目或文件。 而这里的项目(Project)就对应于我们在本课程第一节课中提到的制作 “制作文件” 的工具所需要的文件。

Qt Creator 当然很“偏心”和Qt 库相关的项目,但我们现在确实不需要使用Qt的库,所以选择的项目模板是“Non-Qt Project”,意即Qt 无关的软件项目。它又区分成C和C++应用(Application),我们选择C++。

7.2 位置和命名

本课项目命名为 “hello_qtcreator”。

附加工作:将 c:\d2school (或者你可以放在别的盘符下,比如D盘等)设置成我们使用Qt Creator学习C++所写项目的默认路径。

7.3 选择构建系统

在本课程第一节,我们提到过编译器、链接器、调试器、制作器。Qt Creator中提到的构建系统(Build System)就是“制作器”,可用于帮助生成制作文件。让我们再理理各方相关分工配合关系。请先看图:

构建过程

过程说明:

  1. 制作器(构建系统/Build System)用于生成制作文件;
  2. 制作文件中会指定为了制作最终程序,需要包含哪些源文件;
  3. 构建系统调用编译器、链接器,完成编译和链接过程,最终生成程序。

正如本课程第一节课所说,Qt Creator自带了一个构建系统,叫“Qbs (Qt build system)”。这节课我们就使用它。下一节才讲到名为CMake的制作器如何下载安装,如何集成至Qt Creator 中。

7.4 选择构建套件(Kits)

有了构建系统,为什么还可有“构建套件(Kits)”呢?这是Qt Creator 的一个概念。实质它就是将制作器、编译器、链接器、调试器等打包成一个套件(建议大家查一下kit的英文含义)。有了Kits,选一次就选了编译器、链接器(不过通常和编译器直接绑定)、调试器。不过,Qt Creator 的套件没有强绑定制作器,所以才有会在上一步要求我们选择制作器的过程。也可以这么理解,一个Kits可以支持多种制作器,程序员可在某个具体的项目创建时,才指定制作器。

说回构建套件(Kits),我们现在只有一个套件。将来若有一天你想使用Qt Creator写智能手机应用,那你可能需要配置一个“移动”套件,但此时此刻,我们就使用唯一的那个“桌面”套件。这里的“桌面”,是“Desktop”的翻译,意指我们的写的程序主要用在日常的 PC (台式机或笔记本)环境下。

7.5 项目管理

向导的最后一步是项目管理器(Project Management),此时还可以做两件事:

  1. 可以选择将当前新建项目以子项目的身份,加入到某个已经存在的项目中;
  2. 可以选择当前项目的源代码管理系统。源代码管理是团队开发的重要工具,会在我们另外的课程中讲到。

本步骤界面还显示了向导会生成的文件,一是hello_qtcreator.qbs。它是构建系统Qbs的配置文件,通常我们称为它项目文件。二是main.cpp,一个简单的包含有类似我们之前所写的 “Hello world" 代码的文件。

7.6 编译、运行

当向导完成,main.cpp被自动打开时,大家有没有注意到,Qt Creator 代码编辑器会有那么一段时间,显示成这个样子:

刚刚打开的main.cpp

重点是左边列上,有一些红色的圈,黄色的三角形。它们表示:Qt Creator 认为当前代码存在一些语法错误……可是,这代码不就是它自己的向导生成的嘛……似乎是Qt Creator自己打了自己的脸,这些代码也确实没有任何问题。原因在于,初次加载项目,分析源代码,需要费一些时间,比如说,想要知道第7行的cout和endl是什么东东,有没有出处,就得将iostream文件读出来,如果还没读出来。当前文件(main.cpp)的内容,在Qt Creator看来,就存在问题。有没有想起我们在《编程启蒙篇》第4节课《从机器指令到高级语言》提到的C++语言认为 “出处很重要的” 内容?

真正的编译和运行,视频说起来一大堆,文字表达倒很快:Ctrl + B ,Ctrl + R 。

实际上我写代码时,当然也这么简单!像这种一天要用重复上百次的操作……但凡有那么一点羞耻心的程序员,就不至于动鼠标。

想要看编译过程或结果信息? 也不用动鼠标啦。Qt Creator底下的那些标有数字序号的信息栏,Atl + 数字就是它们的切换热键。请各位试试。