Qt 6.2C++程序设计与桌面应用开发 思政课件 第1章 初识Qt框架_第1页
Qt 6.2C++程序设计与桌面应用开发 思政课件 第1章 初识Qt框架_第2页
Qt 6.2C++程序设计与桌面应用开发 思政课件 第1章 初识Qt框架_第3页
Qt 6.2C++程序设计与桌面应用开发 思政课件 第1章 初识Qt框架_第4页
Qt 6.2C++程序设计与桌面应用开发 思政课件 第1章 初识Qt框架_第5页
已阅读5页,还剩48页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Qt6.2/C++程序设计与桌面应用开发21世纪高等学校计算机类课程创新规划教材–微课视频版教材目录第1章初识Qt框架第2章Qt开发基础第3章界面设计组件第4章主框架窗口第5章对话框设计第6章事件系统第7章文件与数据库第8章模型/视图结构第9章图形绘制第10章多媒体编程第11章网络编程第12章进程与线程教材目录第1章初识Qt框架1.1Qt简介1.2开发环境搭建1.3程序设计方式1.4项目结构分析1.1Qt简介Qt是一个基于C++面向对象程序设计语言、功能全面、跨平台的图形用户界面(GUI)应用程序框架。它提供了一种高效的、真正基于组件编程模式的应用程序设计解决方案。Qt实际上就是一套C++应用程序开发类库,与MicrosoftMFC类似。历史及应用1、发展历程Qt由挪威Trolltech(奇趣科技)公司于1991年开发,在2008年,Trolltech公司被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,芬兰的Digia公司完成对诺基亚公司Qt技术平台和知识产权的收购,Qt由此归属于Digia公司。2014年,Digia成立独立的Qt公司,专门负责Qt的开发、维护和商业推广。历史及应用2、应用实例自1995年以来,Qt逐步进入商业领域,已成为数以万计商业和开源应用程序的基础。QtC++框架一直都是商业应用程序的核心,无论是跨国公司和大型组织,如Adobe、Boeing、Google、IBM、Motorola、NASA、Skype等,还是无数小型公司和组织都在使用Qt进行各种类型应用程序的开发。历史及应用在桌面应用领域,下面这些著名的软件都用到了Qt。(1)Maya,由Autodesk公司出品的优秀三维动画制作软件。2011版开始使用Qt进行开发。(2)WPSOffice,是由金山软件股份有限公司自主研发的一款办公软件套装,可以实现办公软件最常用的文字、表格、演示,PDF阅读等多种功能。(3)VirtualBox,是运行在x86上的一款虚拟机软件,目前属于Oracle公司。运行该软件的操作系统被称为主操作系统。该软件运行时,向用户呈现一个虚拟的计算机,用户可以在这个虚拟计算机上安装一个从属操作系统。版本与特点Qt的发行版本分为商业版和开源版。商业版提供给用户进行商业软件开发,它是一个传统的商业软件,并提供协议有效期内的免费升级和技术支持服务;Qt开源版是为了开发自由而设计的开放源码软件,它提供了和商业版本基本相同的功能,在GNU通用公共许可证下免费供用户使用。经过二十多年的发展与进步,Qt的版本已经从Qt5更新到了Qt6。本教材使用Qt6.2.1LTS,它是Qt6的第1个长期支持(LTS,longtermsupported)版本。版本与特点Qt的主要特点:(1)跨平台Qt支持PC和服务器的平台,包括Windows、Linux和macOS等,还支持移动和嵌入式操作系统,如iOS、EmbeddedLinux、Android和WinRT等。跨平台意味着只需要编写一次程序,在不同平台上无需改动或只需少许改动后再编译,就可以形成在不同平台上运行的版本。这种跨平台特性为开发者提供了极大的便利。版本与特点(2)面向对象Qt的良好封装机制使得Qt的模块化程度非常高,可重用性好,对于用户开发来说是非常方便的。另外,Qt提供了一种称为signal/slot(信号/槽)的通信机制,这使得各个元件之间的协同工作变得更为简单安全。(2)丰富的API

Qt包括多达300多个C++类,除了用于用户界面开发,还可用于文件操作、数据库处理、2D/3D图形渲染、多媒体操作和网络通信等。1.2开发环境搭建Qt应用开发一般都使用集成开发环境。目前,支持Qt应用开发的集成工具有很多,其中能够跨平台使用的主要有QtCreator、QDevelop、Eclipse、MonkeyStudio和Code::Blocks等。除此之外,还有在X11平台上使用的Kdevelop,在Windows平台上使用的MicrosoftVisualStudio,以及在Mac平台上使用的Xcode等。下载与安装1、下载与Qt5版本不同的是,Qt6只能使用在线安装器进行安装。下载Qt的软件安装器有多种途径,可以到Qt的官方网站上进行下载,其网址为:https://www.qt.io/download也可以使用国内的Qt镜像网址或者一些其他的软件资源下载平台。建议使用清华大学开源软件镜像网站下载Qt的在线安装器。其网址为:/qt/official_releases/online_installers/下载与安装2、安装运行Qt软件安装器,根据向导提示输入相应的信息。注意Qt组件选择(SelectComponense)这个步骤,其界面如图所示。这是Qt安装中非常重要的一个步骤,建议优先安装Qt的基础组件,待开发过程中根据应用程序业务逻辑的实际需要,再进行有针对性的补充。另外,除了安装Qt库之外,还需要安装QtCreator等开发和设计工具。如图所示集成开发工具本教材使用QtCreator集成开发工具进行Qt应用程序的开发,版本为5.0.2。QtCreator是Qt官方推出的一款跨平台开源集成开发工具,具有界面简洁、操作方便、与Qt结合完美等特点。其界面如下图所示。菜单栏模式选择器构建套件选择器定位器输出窗格QtCreator界面编辑模式项目视图类视图代码编辑窗口QtCreator集成开发环境的设置:通过“Tools|Options”菜单命令打开的“Options”窗口来完成。如图所示QtCreator设置【例1.1】编写一个基于Qt的HelloWorld程序。程序运行后,在窗口中显示“HelloWorld”字符串,运行结果如下图所示。QtCreator应用(1)启动QtCreator开发工具,选择File|NewFileorProject菜单命令,或者单击Welcome模式中的Projects+New按钮,打开“NewProject”对话框。(2)在“NewProject”对话框中选择Application(Qt)中的QtWidgetsApplication项目模板,单击“Choose…”按钮,打开Qt应用程序创建向导。(3)设置项目名称为“examp1_1”,指定项目存放位置为“F:\chap01”

(4)选择默认的qmake项目构建系统(5)选择QWidget基类,其他使用系统默认值(6)本项目不使用其他语言(7)选择项目的构建套件,这里使用DesktopQt6.2.1MinGW64-bit(8)不向项目中添加其他子项目,也不设置版本控制。单击“Finish”按钮,完成项目(9)展开“Projects”窗口中项目名称节点下的“Forms”分组,双击该分组中的widget.ui窗体界面文件,打开QtDesigner界面设计器,对应用程序主窗口界面进行可视化设计。(10)点击窗体,设置其大小(WidthxHeight)为320x240;窗体标题(windowTitle)为“例1.1”。(11)在窗体中设置Label控件和PushButton控件,分别用来显示字符串和执行窗口关闭命令。在窗体中设置控件,直接用鼠标将控件从控件箱拖动到窗口中的适当位置即可。(12)分别点击窗体中的Label控件和PushButton控件,将其text属性分别设置为“HelloWorld”和“退出”。(13)保存文件,单击QtCreator左边栏中的Run按钮,构建并运行应用程序(14)再次打开窗体设计器,按快捷键F4将窗体的编辑状态切换成“EditSignalsandSlots”,选择“退出”按钮并拖动鼠标至窗体中,弹出“ConfigureConnection”对话框(15)保存文件,再次单击QtCreator左边栏中的“Run”按钮,运行应用程序。此时,若单击主窗口中的“退出”按钮,应用程序主窗口会随即关闭。1.3程序设计方式搭建好Qt开发环境后,就可以开始进行Qt应用程序的开发了。Qt应用程序的开发可以采用3种程序设计方式,即可视化设计方式、代码化设计方式和混合式设计方式。可视化设计1、可视化设计所谓可视化设计方式,就是应用程序框架通过向导自动生成,然后使用QtDesigner设计器进行窗体界面布局设计、Action设计,以及信号和槽的添加等操作。例如,上述例1.1应用程序的开发所采用的就是可视化设计方法。【例1.2】重新编写例1.1中的HelloWorld应用程序,将应用程序主窗口基类设置为QDialog,并使主窗口中的字符串和按钮控件均水平居中对齐。运行结果如图所示。(1)打开QtCreator开发工具,生成一个名为examp1_2的Qt应用程序,并将主窗口标题设置为“例1.2”。操作方法如例1.1所示。(2)在窗体中设置Label控件和PushButton控件,并添加3个VerticalSpacer控件,对象名称使用默认值(3)选择主窗口中的全部控件,单击工具栏中的“垂直布局管理器”图标,在主窗口中添加一个VerticalLayout控件,对象名称使用默认值,并调整其大小(4)分别选择Label控件和PushButton控件,在属性窗口中设置其text属性值分别为“HelloWorld”和“退出”,并通过右键菜单设置其水平居中对齐(5)实现“退出”按钮的单击功能。单击“SignalsandSlotsEditer”窗口中的“+”按钮,添加一个新的信号与槽。设置Sender、Signal、Receiver和Slot分别为pushButton、clicked()、Dialog和close()

(6)保存文件,单击QtCreator左边栏中的“Run”按钮,运行应用程序。单击主窗口中的“退出”按钮,主窗口随即关闭。2、代码化设计所谓代码化设计方法,就是应用程序的所有代码均手工添加完成,而不使用QtDesigner等设计工具。代码化设计【例1.3】使用手工编码的方式,完成例1.2程序功能。(1)打开QtCreator开发工具,选择“Projects”下的“OtherProject”模板中的“EmptyqmakeProject”模板,生成一个名为examp1_3的空Qt应用程序。(2)双击打开应用程序的项目文件“examp1_3.pro”,在文件中添加如下文本行,将Qt的Widgets模块加载到项目中。QT+=widgets(3)右击新生成的项目文件夹examp1_3,在弹出的快捷菜单中选择“AddNew…”菜单命令,打开“新文件”对话框。向项目中添加一个名为“main.cpp”的C++源文件。(4)双击打开main.cpp文件,在文件中添加代码,实现程序功能。创建主窗口对象,并设置其属性创建主窗口中的控件对象,并设置其属性创建主窗口的垂直布局,并设置控件信号与槽(5)单击QtCreator中的“运行”按钮,即可得到程序的运行结果。如图1.40所示。单击对话框中的“退出”按钮,即可关闭程序的主对话框。3、混合式设计使用可视化设计方法开发Qt应用程序,不需要人工编写代码去处理大量繁琐的界面组件的创建和布局管理工作,可以直观地进行界面设计,从而大大提高了应用程序开发的工作效率。但该设计方法也存在一些缺陷,如某些组件无法可视化地添加到界面上,此时就必须手工编写代码来实现相应的部件功能。采用纯代码方式进行Qt应用程序开发,能够设计出非常精美的用户界面,并且可以实现非常复杂的业务逻辑。但是设计效率太低,过程也非常的繁琐。因此,在实际的开发过程中,常常使用混合的设计方法,能够使用可视化设计的就尽可能可视化设计解决,无法可视化实现的再用纯代码的方法解决。混合式设计【例1.4】使用混合式设计方法,实现例1.2的程序功能。要求在“退出”按钮上添加菜单,当选择菜单中的“确定”命令时,关闭应用程序主窗口。如图所示。(1)打开QtCreator开发工具,生成一个名为examp1_4的Qt应用程序。将主窗口标题设置为“例1.4”,并按照例1.1的操作步骤,向主窗口中添加控件及布局管理器。这里采用可视化程序设计方法完成应用程序框架的生成与主窗口界面的设计。(2)编写代码,实现新增功能。由于在QtDesigner中不能直接将菜单放置在“退出”按钮控件上,所以必须采用代码化方式来实现相关的界面功能。(3)保存文件,构建并运行应用程序。单击“退出”按钮,弹出按钮菜单,选择“确定”菜单命令,应用程序主窗口随即关闭。1.4项目结构分析Qt应用程序一般都包含有多个文件,这些相关联的文件被组织在一起,以“项目”的形式进行统一管理。下面以例1.1创建的程序为例,简要分析一下Qt应用程序项目的文件类型、作用,以及程序的运行机制。1、项目文件组成在QtCreator中打开例1.1中的Qt项目examp1_1,切换到“Edit”模式,展开项目视图中的各个文件分组。如图所示。项目文件组成从图中可以看到,项目examp1_1包含4种类型的文件,分别是项目文件examp1_1.pro、主函数文件main.cpp、类文件widget.h/widget.cpp和界面文件widget.ui。项目文件用于项目管理,包括项目设置、使用的Qt模块、包含的文件等信息;主函数文件是实现main()函数的文件,main()函数是C++应用程序入口函数,其主要功能是创建应用程序、创建窗口、显示窗口、运行程序、启动应用程序的消息循环和事件处理;类文件包括项目中类的声明及实现文件;界面文件是使用QtDesigner进行界面设计生成的文件,它实际上就是一个XML文件,用于管理界面中的窗体、部件、信号/槽等信息。需要注意的是,Qt项目中的界面文件在项目构建后将被转换成类文件。展开项目examp1_1构建生成的文件夹build-examp1_1-Desktop_Qt_6_2_1_MinGW_64_bit-Debu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论