第一章:Qt概述
目录
1、介绍
1.1、什么是Qt
1.2、Qt的发展史
1.3、Qt支持的平台
1.4、Qt的版本
1.5、Qt的优点
1.6、Qt的主要应用场景
1.7、Qt成功的案例
2、Qt环境
2.1、Qt的开发环境
2.2、Qt开发工具
2.2.1、Qt Creator
2.2.2、Visual Studio
2.2.3、Eclipse
2.3、环境的配置
3、认识Qt Creator
3.1、Qt Creator概览
3.2、Qt Creator新建项目
3.2.1、新建项目
3.2.2、选择项目模板
3.2.3、选择项目路径
3.2.4、选择构建系统
3.2.5、填写类信息
3.2.6、语言和翻译文件
3.2.7、选择Qt套件
3.2.8、版本控制系统
3.2.9、最终效果
3.3、项目文件解析
3.3.1、QtTest.pro文件
3.3.2、widget.h文件
3.3.3、main.cpp文件
3.3.4、widget.cpp文件
3.3.5、widget.ui文件解析
1、介绍
1.1、什么是Qt
互联网的核心职位:
1、开发:开发又可以分为很多方向,例如后端开发、前端开发、算法、游戏开发等等。其中前端开发也可再进行细分为网页前端开发(做网页)、桌面应用开发(做电脑上的应用程序)、移动应用开发(做手机上的应用)
2、测试
3、运维(管理机器)
4、产品经理(一般是非技术岗位,提出需求)
注:Qt这个技术是用于进行客户端开发的。准确的来讲Qt特指用来进行桌面应用开发。Qt无法开发网页前端、移动应用开发虽然也支持,但很少用。
客户端是指直接和用户打交道的这一端,例如:QQ音乐、抖音等等,后端是站在客户端背后的。虽然大部分客户端程序是需要有后端的服务器做支撑的,但是确实有些程序,是不需要服务器的,比如:计算器等等,这样的程序因为同样也是和用户打交道,所以也可以称为客户端程序。
客户端开发的主要任务就是编写和用户交互的页面,和用户交互的界面有两种典型的风格,一个是命令行或终端界面(简称为TUI,专门给程序员这种专业人士使用),另一个是图形界面(简称为GUI,专门给普通用户使用)。Qt就是一个用来编写桌面GUI程序的一套框架。
Windows下是有很多方案可以开发GUI的,例如:
1、Windows API。Windows系统提供原生的API,使用起来非常原始,也很繁琐。
2、MFC(对Windows API进行封装诞生的一种技术) 和 VC 6.0,影响比较深远。
3、Qt。也是通过封装API产生的一种技术。
上面这些方案都是基于C或C++搭建出来的一些GUI开发体系。后来微软也自己搞了一个编程语言C#(C sharp),下面的前三个是微软弄的GUI开发体系:
4、Windows Forms给C#(.net)量身定做的一套开发GUI的技术体系。不能跨平台。
5、WPF,相当于Windows Forms的升级版本。不能跨平台。
6、UWP,相当于Windows Forms的升级版本。不能跨平台。
7、Electron,本质上是把基于HTML这样的网页,打包成一个Windows上运行的客户端程序。这个技术有个大的缺陷就是开发出来的程序运行的效率比较低,低于上面所说的一些原生开发的技术体系。
注:Qt虽然仅仅只是上面解决方案的一种,但仍属于其中非常重要的技术方案。
Qt 是⼀个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形 界面所需的所有功能。它是完全面向对象的,很容易扩展。Qt为开发者提供了⼀种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用C++语言进行高级开发。
注:框架本质上是一群大佬发明出来,方便让普通程序员写出来的代码比较靠谱;框架就是在限制程序员的自由。库和框架都是属于大佬把一些代码写好了,然后给普通程序员使用,不同的是,库是被程序员调用的,其中程序员是主体,相反框架则是占主体,程序员配合框架,完善填充框架中留出的一些细节。
C++的生态是割裂的、离散的,不像Java,Java对框架是比较依赖的,C++不同的开源社区或者大厂,各自有各自的框架,相比之下,像Qt这种,能够被大家共同认可的框架,在整个C++生态中也是不多见的。
1.2、Qt的发展史
1991年,Qt最早由奇趣科技开发;1991年诞生了很多东西,比如:vim、python、Linux等。
1996年,进入商业领域,它也是目前流行的Linux桌面环境KDE的基础;
2008年,奇趣科技被诺基亚公司收购,Qt成为诺基亚旗下的编程语言;
2012年,Qt又被Digia公司收购;
2014年4月,跨平台的集成开发环境Qt Creator 3.1.0发布,同年5月20日发布了Qt 5.3正式版,至此Qt实现了对IOS、Android、Embedded等各平台的全面支持。
1.3、Qt支持的平台
1、Windows(各个版本)。
2、Linux(各种发行版,在Linux中是存在好几套桌面环境的,例如:GNOME是基于GTK构建的,KDE就是基于Qt构建的)。
3、Mac系统。
4、Android操作系统。
5、嵌入式系统。这个也是Qt开发的一个主战场,日常使用的冰箱、洗衣机、路由器、投影仪等等,这些设备内部也有计算机,这种设备里面的计算机的硬件配置是比较低的。有些嵌入式系统中,也是需要运行图形化界面程序的,这个时候Qt就起到作用了,尤其是在一些工业设备上。
1.4、Qt的版本
目前最新的版本是Qt 6,但是相对来说Qt 6和Qt 5之间的核心功能区别不大,并且企业中也仍然有大量的项目在使用Qt 5, 因此后面使用Qt 5版本来进行介绍。
另外Qt在发布的时候还提供了两种许可证:
1、商业许可:开发者以商业目的使用Qt框架进行开发和发布软件的许可,开发者需要购买商业许可并按照相关规定使用Qt框架。商业许可提供了更多的功能和服务,适合于商业软件开发。
2、开源许可:开发者以非商业目的使用Qt框架进行开发和发布软件的许可,开发者可以免费使用Qt框架,但需要遵守开源许可协议的要求,如在软件中包含Qt许可协议的声明等。
1.5、Qt的优点
1、跨平台,几乎支持所有的平台;
2、接口简单,容易上手,学习QT框架对学习其他框架有参考意义。
3、⼀定程度上简化了内存回收机制;(半自动的垃圾回收,能够简化内存释放,也能够尽可能小的影响程序的运行效率)。
4、开发效率高,能够快速的构建应用程序。
5、有很好的社区氛围,市场份额在缓慢上升。
6、可以进行嵌入式开发。
1.6、Qt的主要应用场景
1、桌面应用程序:Qt 能够创建各种类型的桌面应用程序,包括文件管理器、媒体播放器、绘图程序等。Qt应用程序支持多种操作系统,可以运行在Windows、Linux、macOS等桌面操作系统上。
2、嵌入式系统:Qt 在嵌入式领域应用非常广泛,它可以构建面向各种设备的图形应用程序,在机顶盒、车载娱乐系统、安防监控设备等领域具有广泛的应用。
1.7、Qt成功的案例
1、Linux 桌面环境KDE。
2、WPS Office 办公软件。
3、Skype 网络电话。
4、Google Earth 谷歌地图
5、VLC 多媒体播放器
6、VirtualBox 虚拟机软件(VirtualBox号称是最强的免费虚拟机软件)
2、Qt环境
2.1、Qt的开发环境
Qt的开发环境需要安装三个部分:
1、C++编译器(gcc、cl.exe等等)。注:编译器不等于IDE,编译器只是IDE调用的程序。
2、Qt SDK(也就是软件开发工具包)。
注:Windows版本的Qt SDK中已经内置了C++编译器(内置的C++编译器是mingw,Windows版本的gcc和g++)。如果想用VS中的cl.exe作为编译器,需要额外配置很多东西,容易出错。
3、Qt的集成开发环境(IDE)
2.2、Qt开发工具
2.2.1、Qt Creator
Qt Creator 是官方提供的,是⼀个轻量级的跨平台集成开发环境(IDE),专为使用Qt框架进行应用程序开发而设计的。它是⼀个功能强大、易于使用、快速且高效的⼯具,被广泛用于编写各种类型的应用程序,如桌面应用程序、移动应用程序和嵌入式系统等。后面就使用Qt Creator来学习Qt。
2.2.2、Visual Studio
Visual Studio 是由微软公司开发的集成开发环境(IDE)。虽然功能强大,但是需要额外的配置就比较多,比较麻烦。
2.2.3、Eclipse
Eclipse 是著名的跨平台的集成开发环境(IDE)。最初主要用来进行Java语言的开发,但是目前亦有⼈通过插件使其作为其他计算机语言比如C++和Python的开发⼯具。Eclipse的本身只是⼀个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。Qt框架可以与Eclipse集成,使开发者可以使用Eclipse的强大功能来开发Qt应用程序。
2.3、环境的配置
但凡需要下载一个程序首选的肯定是官方网站。但是官网下载比较慢,可以通过去网上的其他渠道进行下载,不再多说。我下载的是如下版本:
注意:安装软件的时候,所在的目录不要带中文,不要带特殊符号,也不要带空格。
下载安装完成后,接下来就配置环境变量(给Qt配置环境变量不是必须的,但是为了后面的一些相关操作方便一些,所以还是配置上了),如下:
1、找到Qt的安装路径,复制 "bin" 的路径;
2、鼠标右键"此电脑"、"属性"、"高级系统设置"、"环境变量"。
3、"新建"、填入"bin"的路径、然后点击"确定"即可。
4、在关掉所有窗口时,⼀定要点击"确定",否则上述配置无效。
为什么要设置环境变量?在Windows上设置Qt的环境变量是为了能够在命令行或其他应用程序中直接访问Qt相关的命令和⼯具。
完成下载安装后,就能看到如下内容:
其中,Assistant是Qt自带的离线版本的官方文档;
Designer可以通过拖拽的控件的方式来快速生成界面的工具,该工具是被集成到了Qt Creator中的,因此后面我们直接使用Qt Creator即可。
Linguist的作用是针对国际化进行的支持,允许单独创建出一个语言配置文件,把界面上需要用到的各种文字都配置到这个文件中,并且在文件中提前的把各种语言的翻译都配置进去,就可以做到“一键式切换语言的效果”。例如:中文版本的语言配置(界面上的术语都是中文),英文版本的语言配置(界面上的术语都是英文),通过简单的API就可以切换这里的语言配置,就可以很容易的实现兼容不同国家地区的效果了。
再后面的就是黑框的命令行了,可以在里面使用Qt SDK一些命令等等。
最后一个就是Qt Creator了,是Qt的集成开发工具,也是在后面主要使用的工具。下面来介绍Qt Creator。
3、认识Qt Creator
3.1、Qt Creator概览
打开Qt Creator集成开发环境,启动之后看到类似下面的界面:
1、最上面的菜单栏总共有8个菜单选项,包含了常用的功能菜单:
文件:包含了新建、打开、关闭项目和文件、打印和退出等基本功能。
编辑:包含了撤销、剪切、复制、查找和选择编码等功能。
构建:包含构建和运⾏项⽬等相关功能。
调试:包含调试运行项目等相关功能。
Analyze:包含QML分析器、Valgrind内存和功能分析器等相关功能。
工具:提供了快速定位菜单、外部工具菜单等。这里的选项菜单中包含了Qt Creator各个方面的设置选项有环境设置、文本编辑器设置、帮助设置、构建和运行设置、调试器设置和版本控制设置等。
控件:包含了设置窗口布局的⼀些菜单,如全屏显示和隐藏边栏功能等。
帮助:包含Qt帮助、Qt Creator版本信息、报告bug和插件管理等菜单。
2、左上部的模式选择:
欢迎:主要提供了⼀些功能的快捷⼊口,如打开帮助教程、打开示例程序、打开项目、新建项目、快速打开以前的项目和会话、联网查看Qt官方论坛和博客等。示例页面显示了Qt自带的大量示例程序, 并提供了搜索栏从而实现快速查找;教程页面提供了⼀些视频教程资源,但是是英文的。
编辑:主要用来查看和编辑程序代码,管理项目文件。Qt Creator中的编辑器具有关键字特殊颜色显示、 代码自动补全、声明定义间快捷切换、函数原型提示、F1键快速打开相关帮助和全项目中进行查找等功能。也可以在“工具”中的“选项”中对编辑器进行设置。
设计:整合了Qt Designer的功能。可以设计图形界面,进行部件属性设置、信号和槽设置、布局设置等操作。
调试:支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程以及快照等查看窗口。
项目:包含对特定项目的构建设置、运行设置、编辑器设置、代码风格设置和依赖关系等页面。构建设置中可以对项目的版本、使用的Qt版本和编译步骤进行设置;编辑器设置中可以设置⽂件的默认编码;在代码风格设置中可以设置自己的代码风格。
帮助:在帮助模式中将Qt助手整合了进来,包含目录、索引、查找和书签等几个导航模式,可以在帮助中查看Qt和Qt Creator的各方面的信息。
3、左下部是构建套件选择器。构建套件选择器包含了目标选择器、运行按钮、调试按钮和构建按钮四个图标。
目标选择器:目标选择器用来选择要构建哪个项目、使用哪个Qt库、这对于多个Qt库的项目很有用。还可以选择编译项目的debug版本或是release版本。
运行按钮:运行该按钮可以实现项目的构建和运行;
调试按钮:运行该按钮可以实现项目的调试;
构建按钮:构建按钮完成项目的构建。
4、欢迎模式下的窗口
Project:用来新建⼯程、打开⼯程。
示例:Qt官方的⼀些示例。
教程:Qt官方教程。
5、定位器:使用定位器来快速定位项目、文件、类、方法、帮助文档以及文件系统。可以使用过滤器来更加准确地定位要查找的结果。如下图所示:
6、输出窗格:输出窗格包含了问题、Search Results、应用程序输出、编译输出、QML Debugger Console、概要信息、Test Results,总共7个选项,它们分别对应⼀个输出窗口。如下图所示:
问题:问题窗口显示程序编译时的错误和警告信息;
Search Results:搜索结果窗口显示执行了搜索操作后的结果信息;
应用程序输出:应用程序窗口显示应用程序运行过程中输出的所有信息;
编译输出:编译输出窗口显示程序编译过程输出的相关信息;
7、会话记录:可以对会话进行管理,包括Clone。如果没打开工程,则显示的是最后⼀次打开的 (会话)工程,否则,显示当前的会话(工程)。如下图所示:
8、新建项目和打开已有项目。如下图所示:
3.2、Qt Creator新建项目
3.2.1、新建项目
在菜单栏中选中,选择"文件"、点击"新建文件或项目",例如:
然后会出现弹出如下对话框:
3.2.2、选择项目模板
新建项目对话框里有五类项目模板:
1、Application:Qt 应用程序,包括普通窗体程序和Qt Quick程序;
2、Library:可以创建动态库、静态库以及Qt Quick扩展插件、Qt Creator自身插件。
3、其他项目:可以创建单元测试项目、Qt 4设计师自定义控件、子目录项目等。
4、Non-Qt-Project:非Qt项目。可以创建纯C或纯C++项目。
5、Import Project:导入项目。从版本控制系统管理的软件项目导⼊旧的项目。
常用的只有第⼀类Application,选择它,在右侧会看到Qt应用程序的五个子模板:
1、Qt Widgets Application:普通窗体模板,传统基于部件的窗体界面程序。如果要使用Qt写一个GUI程序,就要选择这个。
2、Qt Console Application:Qt控制台应用程序。因为Qt主要用于图形界面设计,这个控制台项目模板基本不用;如果要写一个TUI程序,就要选择这个。
3、Qt for Python:在Python下用LGPL的许可来开发闭源Qt软件。注:Qt不仅仅支持C++,还支持python和Java。
4、Qt Quick Application:是Qt搞出的一套新的用来开发GUI的方式(传统的开发GUI的方式叫做Qt Widgets),是Qt提供的⼀种高级用户界面技术,使用它可以方便快速的为移动以及嵌入式设备开发流畅美观的用户界面。Qt Quick模块是开发QML应用的标准库,提供了使用QML创建用户界面所需的⼀切,包括可视化、交互、动画、模型、视图、粒子效果以及着色效果等。
注:选择不同的项目模板,Qt Creator就会在后续项目创建好了之后生成不同的基础代码。
3.2.3、选择项目路径
点击choose后,接下来就是给Qt项目命名及选择保存项目的路径。如下图所示:
3.2.4、选择构建系统
点击下一步后,接下来就是选择Qt项目的构建系统,使用默认的"qmake" 即可。如下图所示:
Qt 中的构建工具有三种可供选择,分别是:qmake、CMake、Qbs,下面依次介绍:
1、qmake:qmake是⼀个构建⼯具,用于自动生成makefile文件。qmake支持跨平台构建,qmake编辑的是⼀个后缀名为.pro的文件。
2、CMake:CMake是⼀个跨平台的构建⼯具。CMake本身不是⼀个编译器,其实就是生成⼀个让编译器能读懂编译流程的文件⼯具。让CMake自动生成构建系统,例如 Makefile 和Visual Studio项目文件。CMake是⼀个第三方⼯具,有自己的文档。
3、Qbs:Qbs同qmake、CMake⼀样都是构建⼯具。Qbs号称是新⼀代的构建⼯具,比qmake编译速度更快。Qbs没有绑定Qt版本,它从项目文件的高级项目描述中生成⼀个正确的依赖表。而传统的MakeFile生成⼯具如qmake和CMake,其在生成MakeFile文件后将实际的命令交给Make⼯具去执行。
注:Qt官方声明,因市场原因,弃用Qbs。对于Qt用户来说,qmake是当前使⽤最广泛的构建工具, CMake其次。
3.2.5、填写类信息
然后点击下一步,接下来就是填写类信息了,如下图所示:
使用Qt Creator创建项目,会自动生成一些代码出来,生成的代码中就包含一个类,此处就是要选择这个类的父类是谁。在上面的图片中,MainWindow就是生成的代码中的类,QMainWindow就是该类的父类。
注:Qt中内置的一些类都是以Q开头的。
对于基类的选择,目前有三种基类:
1、QMainWindow:主窗口类,⼀般用于较为复杂的应用程序,除了中央客户区界面,还包括菜单栏、工具栏、 状态栏以及多个可停靠的⼯具对话框等。
2、QWidget:最简单、最基本的窗体程序,里面可以放置多个控件实现程序功能。
3、QDialog:基于对话框的程序,对话框⼀般用于弹窗,也可以用于主界面显示。对话框是从QWidget继承而来的,并丰富了⼀些功能,如模态显示和返回值等。
上述三个类之间的关系如下图:
我们选择QWidget即可,然后可以修改Class name的名字。
注:此处生成的文件名是和类名相关联的,这样的关联并非是强制的,但推荐是关联的。
最下面的Form file很重要,Qt中生成界面的方式有两种,一种是通过代码的方式创建界面,另一种是通过Form file,以图形化的方式生成界面,此时,就可以使用Qt Designer 或者 Qt Creator来编辑这个以.ui为后缀的文件,从而快速的生成图形界面(后面再说)。
3.2.6、语言和翻译文件
点击"下⼀步"进入如下界面,此处选择的语言是"汉语","英语"这样的语言,而不是"编程语言"。
由于我们暂时不考虑国际化问题,选择默认的none即可。
3.2.7、选择Qt套件
然后点击“下一步”,出现如下界面:下面就是在选择基于哪一个编译器的Qt SDK来构建后续的代码。
如果安装配置了多个Qt套件,就可以都选上。 Qt 套件是指Qt程序从编译链接到运行环境的全部工具和Qt类库的集合,对于MinGW版本Qt程序生成和调试,至少需要MinGW中的编译器g++(自动调用链接器)、g++配套的基础库、调试器gdb还有使用MinGW环境编译而成的Qt类库自身。在上面Kit Selection里选中全部套件即可。
3.2.8、版本控制系统
点击"下⼀步"进入如下项目管理界面,在项目管理界面可以设置作为子项目,以及加入版本控制系统管理。这两个功能暂时用不到,都用默认的,然后点击"完成"。
注:如果想把代码提交到码云或者github,可以在此处选择git作为版本控制系统。
3.2.9、最终效果
通过上述的步骤,完成了项目的创建。不要觉得上面的步骤麻烦,事实上在熟练了之后,创建⼀个项目花的时间不会超过10秒钟。
项目创建完成之后,Qt Creator会直接进入代码编辑模式,可以看到类似下图界面:
然后我们可以点击左下角的绿色三角号,进行运行,运行结果为:
3.3、项目文件解析
3.3.1、QtTest.pro文件
.pro文件是Qt项目的工程文件,也是qmake工具构建时的重要依据。
工程新建好之后,在工程目录列表中有⼀个后缀为".pro"的文件,".pro"文件就是工程文件,它是qmake自动生成的用于生产makefile的配置文件。如下图所示:
注:.pro文件就类似于之前Linux中的Makefile文件。
3.3.2、widget.h文件
widget.h中的代码如下:里面就是Widget类的声明
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget> // 要想使用QWidget这个类,就要包含这个头文件。Qt中的设定就是使用Qt中内置的类,包含的头文件的名字和类名是一致的。QT_BEGIN_NAMESPACE
namespace Ui { class Widget; } // 声明了一个类
QT_END_NAMESPACEclass Widget : public QWidget // 这个就是创建项目时选择的那个父类(该类是Qt SDK中内置的)
{Q_OBJECT // 是Qt中内置的一个宏。Qt中有一个非常核心的机制就是“信号”和“槽”,如果某个类想使用“信号”和“槽”,就需要引入这个宏。public:Widget(QWidget *parent = nullptr); // Qt中引入了“对象树”机制(后面再详细介绍),创建的Qt对象,就可以把这个对象给挂在对象树上,往树上挂的时候就需要指定父节点。~Widget();private:Ui::Widget *ui; // 和Form file密切相关
};
#endif // WIDGET_H
Ui::Widget *ui; 这个指针是用前面声明的namespace Ui里的Widget类定义的,所以指针ui是指向可视化设计的界面,后面要访问界面上的组件,都需要通过这个指针ui去访问。
3.3.3、main.cpp文件
main.cpp中的代码如下:
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv); // 编写一个Qt的图形化界面程序,一定需要有QApplication对象。Widget w; // Widget就是在创建项目时填写生成的类名;这里就是在创建控件对象。w.show(); // show方法就是让控件显示出来,hide方法就是让控件隐藏,这两个方法都是由Widget的父类QWidget提供的。return a.exec(); // exec表示让程序执行起来。
}
注:Qt⼀个类对应一个头文件,类名就是头文件名。
3.3.4、widget.cpp文件
widget.cpp中的代码如下:widget.cpp 文件是类Widget的实现代码,所有在窗体上要实现的功能添加在此文件中;
#include "widget.h" // 创建项目生成的头文件
#include "ui_widget.h" // Form file被qmake生成的头文件Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this); // 把Form file生成的界面和当前Widget关联起来
}Widget::~Widget()
{delete ui;
}
3.3.5、widget.ui文件解析
widget.ui是窗体界面定义文件,是⼀个XML的文件,定义了窗口上的所有组件的属性设置、布局,及其信号与槽函数的关联等。用UI设计器可视化设计的界面都由Qt自动解析,并以XML文件的形式保存下来。在设计界面时,只需在UI设计器里进行可视化设计即可,而不用管widget.ui文件是怎么生成的。
widget.ui就是上面我们提到的Form file文件,是以.ui为后缀的文件,双击该文件就可以切换到设计界面(当双击该文件时,此时 Qt Creator 就会调用Qt Designer,打开ui文件),如下:此时看到的就是图形化的界面编辑器
通过拖拽左侧的控件到程序窗口,就可以创建出具体的界面了。
此时,再点击左侧的“编辑”按钮,此时显示的内容就是.ui文件的本体了。内容如下:
文件内容的格式就是XML格式,XML和HTML是很相似的,都是使用成对的标签来表示数据;不同的是XML里面有哪些标签,以及标签的具体含义都是是程序员自定义的,此处看到的这些标签,就是开发Qt的大佬们来约定的(我们不需要关注这里的标签具体含义是什么,只要知道ui文件本质上是一个XML文件即可);而HTML的标签是固定的,每一个标签的含义,有一个专门的标准委员会来约定的,所有的浏览器也是按照同样的规则来解释的。
Qt中使用XML文件的目的就是去描述程序的界面是什么样子的,进一步qmake会调用相关的工具,依据这个XML文件来生成一些C++代码,从而把完整的界面构造出来。
注:上面所看到的这些.h、.cpp、.pro、.ui文件都是源代码文件,在编译运行Qt项目中还会生成一些中间文件。在运行一次程序后,就会在项目目录并列的地方,多出来一个build-xxx的目录,如下:
这个目录里面就是该项目运行过程中生成的一些临时文件,如下:
其中ui_widget.h文件就是上面的widget.ui这个XML文件生成的.h文件
点击进入debug目录,如下:
其中里面的QtTest.exe文件就是最终的可执行程序,可以直接运行。