《Qt 5.9 C++开发指南》第1.4节 编写一个Hello World程序【完整版】

1.4  编写一个HelloWorld程序

学习一种编程语言或编程环境,一般都首先编写一个“Hello World”程序。我们也用Qt Creator编写一个“Hello World”程序,以初步了解Qt Creator设计应用程序的基本过程,对使用Qt Creator编写Qt C++应用程序有个初步的了解。

1.4.1 新建一个项目

单击Qt Creator的菜单项“File”→“New File or Project…”,出现如图1-5所示的对话框。在这个对话框里选择需要创建的项目或文件的模板。

图1-5 新建文件或项目对话框

Qt Creator可以创建多种项目,在最左侧的列表框中单击“Application”,中间的列表框中列出了可以创建的应用程序的模板,各类应用程序是:

●       Qt Widgets Application,支持桌面平台的有GUI(Graphic User Interface,图形用户界面)界面的应用程序,GUI的设计完全基于C++语言,采用Qt提供的一套C++类库。

●       Qt Console Application,控制台应用程序,无GUI界面,一般用于学习C/C++语言,只需要简单的输入输出操作时创建此类项目。

●       Qt Quick Application,创建可部署的Qt Quick 2应用程序。Qt Quick是Qt支持的一套GUI开发架构,其界面设计采用QML语言,程序架构采用C++语言。利用Qt Quick可以设计非常炫的用户界面,一般用于移动设备或嵌入式设备上无边框的应用程序的设计。

●       Qt Quick Controls 2 Application,创建基于Qt QuickControls 2组件的可部署的Qt Quick 2应用程序。Qt Quick Controls 2组件只有Qt 5.7及以后版本才有。

●       Qt Canvas 3D Application,创建Qt Canvas3D QML项目,也是基于QML语言的界面设计,支持3D画布。

在图1-5的对话框中选择项目类型为Qt Widgets Application后,单击“Choose…”按钮,出现如图1-6的新建项目向导。

在图1-6中,选择一个目录,如“G:\Qt5Book\Qt5.9Samp\chap01”,再设置项目名称为samp1_1,这样新建项目后,会在“G:\Qt5Book\Qt5.9Samp\chap01”目录下新建一个目录,项目所有文件保存在目录“G:\Qt5Book\Qt5.9Samp\chap01\samp1_1\”下。

图1-6 新建项目向导第1步:项目名称和存储路径设置

在图1-6中设置好项目名称和保存路径后,单击“Next”按钮,出现如图1-7所示的选择编译工具的界面,可以将三个编译工具都选中,在编译项目时再选择一个作为当前使用的编译工具,这样可以编译生成不同版本的可执行程序。

图1-7 新建项目向导第2步:选择编译工具

在图1-7的界面中单击“Next”按钮,出现如图1-8的界面。在此界面中选择需要创建界面的基类(base class)。有三种基类可以选择:

●       QMainWindow是主窗口类,主窗口具有主菜单栏、工具栏、状态栏,类似于一般的应用程序的主窗口。

●       QWidget是所有具有可视界面类的基类,选择QWidget创建的界面对各种界面组件都可以支持。

●       QDialog是对话框类,可建立一个基于对话框的界面。

在此选择QMainWindow作为基类,自动更改的各个文件名不用去修改。勾选“Generate form”复选框。这个选项如果勾选,就由Qt Creator创建UI(User Interface,用户界面)文件,否则,需要自己编程手工创建界面。初始学习,为了知道QtCreator的设计功能,勾选此选项。然后单击“Next”按钮,出现一个页面,总结了需要创建的文件和文件保存目录,单击“Finish”按钮就可以完成项目的创建。

图1-8 新建项目向导第3步:选择界面基类

1.4.2 项目的文件组成和管理

完成了上面的新建项目的步骤后,在Qt Creator的左侧工具栏上单击“Edit”按钮,可显示如图1-9的窗口。窗口左侧有上下两个子窗口,上方的目录树显示了项目内文件的组织结构,显示当前项目为samp1_1。项目的名称构成目录树的一个根节点,Qt Creator可以打开多个项目,但是只有一个活动项目(Active Project),活动项目的项目名称节点用粗体字体表示。

在项目名称节点下面,分组管理着项目内的各种源文件,几个文件及分组分别是:

●       samp1_1.pro是项目管理文件,包括一些对项目的设置项。

●       Headers分组,该节点下是项目内的所有头文件(.h),该项目有一个头文件mainwindow.h,是主窗口类的头文件。

●       Sources分组:该节点下是项目内的所有C++源文件(.cpp),该项目有两个C++源文件,mainwindow.cpp是主窗口类的实现文件,与mainwindow.h文件对应。main.cpp是主函数文件,也是应用程序的入口。

●       Forms分组:该节点下是项目内的所有界面文件(.ui)。该项目有一个界面文件mainwindow.ui,是主窗口的界面文件。界面文件是文本文件,使用XML语言描述界面的组成。

图1-9 项目管理与文件编辑界面

左侧上下两个子窗口的显示内容可以通过其上方的一个下拉列表框进行选择,可以选择的显示内容包括Projects、Open Documents、Bookmarks、File System、Class View、Outline等。例如,在图1-9中,上方的子窗口显示了项目的文件目录树,下方显示打开的文件列表。可以在下方选择显示Class View,这样,下方显示项目内所有的类的结构,便于程序浏览和快速切换到需要的代码处。

双击文件目录树中的文件mainwindow.ui,出现如图1-10的窗体设计界面,这个界面实际上是Qt Creator中集成的Qt Designer。窗口左侧是分组的组件面板,中间是设计的窗体。在组件面板的Display Widgets分组里,将一个Label组件拖放到设计的窗体上面。双击刚刚放置的Label组件,可以编辑其文字内容,将文字内容更改为“Hello, World!”。还可以在窗口右下方的属性编辑器(Property Editor)里编辑标签的Font属性,Point Size更改为12,勾选Bold。

图1-10 集成在QtCreator中UI设计器

1.4.3  项目的编译、调试与运行

单击主窗口左侧工具栏上的“Projects”按钮,出现如图1-11所示的项目编译设置界面。

界面左侧一栏的“Build & Run”下面显示了本项目可用的编译器工具,要使用哪一个编译器用于项目编译,单击哪个编译器即可,选择的编译器名称会用粗体字表示。这里选择使用MinGW 32bit编译器。

每个编译器又有Build和Run两个设置界面,在Build设置界面上,有一个“Shadow build”复选框。如果勾选此项,编译后将在项目的同级目录下建立一个编译后的文件目录,目录名称包含编译器信息,这种方式一般用于使用不同编译器创建不同版本的可执行文件。如果不勾选此项,编译后将在项目的目录下建立“Debug”和“Release”子目录用于存放编译后的文件。


图1-11 项目编译器选择和设置界面

设计了mainwindow.ui文件,并设置好了编译工具之后,就可以对项目进行编译、调试或运行。主窗口左侧工具栏下方有4个按钮,其功能见表1-1。

表1-1  编译调试工具栏按钮的作用

图标

作用

快捷键

弹出菜单选择编译工具和编译模式,如Debug或Release模式

直接运行程序,如果修改后未编译,会先进行编译。即使在程序中设置了断点,此方式运行的程序也无法调试。

Ctrl+R

项目需要以Debug模式编译,点此按钮开始调试运行,可以在程序中设置断点。若是以Release模式编译,点此按钮也无法进行调试。

F5

编译当前项目

Ctrl+B


首先对项目进行编译,没有错误后,再运行程序。程序运行的界面如图1-12。这就是一个标准的桌面应用程序,我们采用可视化的方式设计了一个窗口,并在上面显示了一个字符串“Hello,World!”。

图1-12 实例程序samp1_1运行时界面

在Qt Creator中也可以对程序设置断点进行调试,但是必须以Debug模式编译,并以“Start Debugging”(快捷键F5)方式运行程序。程序调试的方法与一般IDE工具类似,不再详述。注意,要在Qt Creator里调试MSVC2015编译的程序,必须安装Windows软件开发工具包SDK。

在图1-11的界面中选择其他编译器,并且勾选“Shadow build”,用Debug和Release模式分别编译,将会在项目的同级目录下生成对应的目录,保存编译后的文件。图1-13是实例samp1_1采用三种编译器,分别用Debug和Release模式编译后生成的目录结构。三种编译器,两种编译模式,生成了六个文件夹。

图1-13 勾选“Shadowbuild”选项后使用不同编译器和编译模式生成的输出目录

【提示】除非特别说明,本书后面的实例程序均在Windows 7.0 SP1 64位平台上用Qt Creator 4.3.1开发,采用Qt 5.9.1的MinGW 32bit编译器进行编译。只有在第12章设计QtDesigner的Widget插件时才必须使用MSVC2015 32bit编译器,在第15.5节使用摄像头录像时必须使用Linux平台的Qt。


<总目录>        <第1章>        <上一节>        <下一节>

猜你喜欢

转载自blog.csdn.net/hongandyi/article/details/80300931