书海网短评:
Qt是软件开发领域非常著名的C++可视化开发平台,目前*新版本为Qt5.8。本书以Qt5.8为平台,介绍Qt环境、模板库工具类及控件、布局管理、基本对话框、主窗口、图形与图片、图形视图框架、模型/视图结构、文件及磁盘处理、网
Qt是软件开发领域非常著名的C++可视化开发平台,目前*新版本为Qt5.8。《Qt5开发及实例(第3版)》以Qt5.8为平台,介绍Qt环境、模板库工具类及控件、布局管理、基本对话框、主窗口、图形与图片、图形视图框架、模型/视图结构、文件及磁盘处理、网络与通信、事件处理及实例、多线程、数据库、多国语言国际化、单元测试框架、QML编程基础、QML动画特效、QtQuickControls开发基础和QtQuickControls2新颖界面开发。每个章节在简单介绍开发环境的基础上,用一个小实例介绍Qt5应用程序开发的各个方面,然后系统介绍Qt应用程序开发技术,通过实例介绍来理解内容。*后利用综合实例应用Qt主要内容。综合实例包括汽车销售管理系统、Qt版Word字处理软件、Qt版聊天软件和多功能文档查看器。《Qt5开发及实例(第3版)》在保持前面版本特点的基础上,重新整编原有内容,重新构建和调试所有实例,同时将Qt5.5和Qt5.8新组件和功能融入其中,同步配套相应的实例,对新增加的QtQuickControls2专门增加一章进行介绍。通过几个大综合实例应用Qt主要内容。《Qt5开发及实例(第3版)》包含很多实例,为了方便读者上机练习,在书中实例介绍时提供源代码编号CH×××,这些代码和配套课件通过光盘直接提供,同时可在华信教育资源网(http://www.hxedu.com.cn)上免费下载。《Qt5开发及实例(第3版)》既可作为Qt的学习和参考用书,也可作为大学教材或Qt5培训用书。
陆文周,高级工程师,毕业于东南大学。早年任职于东南大学机械系,从事工程材料、机械制造基础、微机原理、机械设计等课程教学与数控机床设计,后到苏州工业园区多家企业任职。2008年至今,任职于上海恒动新能源有限公司。
第1章Qt概述1
1.1什么是Qt1
1.2Qt5的安装2
1.2.1下载安装Qt52
1.2.2运行Qt5Creator5
1.2.3Qt5开发环境6
1.3Qt5开发步骤及实例8
1.3.1设计器Qt5Designer实现8
1.3.2代码实现简单实例15
L1.2Qt5安装:概念解析18
伙伴编辑模式(EditBuddies)18
L1.3Qt5开发步骤及实例:概念解析19
L1信号和槽机制(Signal&Slot)19
L2Qt5元对象系统21
L3布局管理器21
第2章Qt5模板库、工具类及控件22
2.1字符串类22
2.1.1操作字符串22
2.1.2查询字符串数据24
2.1.3字符串的转换24
2.2容器类26
2.2.1QList类、QLinkedList类和QVector类26
2.2.2QMap类和QHash类32
2.3QVariant类35
2.4算法及正则表达式37
2.4.1Qt5常用算法37
2.4.2基本的正则表达式38
2.5控件39
2.5.1按钮组(Buttons)40
2.5.2输入部件组(InputWidgets)41
2.5.3显示控件组(DisplayWidgets)43
2.5.4空间间隔组(Spacers)44
2.5.5布局管理组(Layouts)44
2.5.6容器组(Containers)44
2.5.7项目视图组(ItemViews)47
2.5.8项目控件组(ItemWidgets)49
2.5.9小综合例子53
L2.1字符串类QString:概念解析56
L1隐式共享56
L2内存分配策略58
L2.5Qt5控件:概念解析58
Qt::WindowFlags枚举类型58
第3章Qt5布局管理61
3.1分割窗口QSplitter类61
3.2停靠窗口QDockWidget类63
3.3堆栈窗体QStackedWidget类66
3.4基本布局(QLayout)69
3.5【综合实例】:修改用户资料74
第4章Qt5基本对话框86
4.1标准文件对话框类90
4.1.1函数说明90
4.1.2创建步骤91
4.2标准颜色对话框类92
4.2.1函数说明92
4.2.2创建步骤92
4.3标准字体对话框类93
4.3.1函数说明93
4.3.2创建步骤94
4.4标准输入对话框类94
4.4.1标准字符串输入对话框98
4.4.2标准条目选择对话框98
4.4.3标准int类型输入对话框99
4.4.4标准double类型输入对话框100
4.5消息对话框类101
4.5.1Question消息框104
4.5.2Information消息框105
4.5.3Warning消息框105
4.5.4Critical消息框106
4.5.5About消息框107
4.5.6AboutQt消息框107
4.6自定义消息框108
4.7工具盒类109
4.8进度条114
4.9调色板与电子钟118
4.9.1QPalette类118
4.9.2QTime类124
4.9.3【综合实例】:电子时钟125
4.10可扩展对话框128
4.11不规则窗体131
4.12程序启动画面(QSplashScreen)134
第5章Qt5主窗口137
5.1Qt5主窗口构成137
5.1.1基本元素137
5.1.2【综合实例】:文本编辑器138
5.1.3菜单与工具栏的实现142
5.2Qt5文件操作功能147
5.2.1新建文件147
5.2.2打开文件148
5.2.3打印文件150
5.3Qt5图像坐标变换153
5.3.1缩放功能153
5.3.2旋转功能154
5.3.3镜像功能156
5.4Qt5文本编辑功能157
5.4.1设置字体160
5.4.2设置字号161
5.4.3设置文字加粗161
5.4.4设置文字斜体161
5.4.5设置文字加下画线162
5.4.6设置文字颜色162
5.4.7设置字符格式163
5.5Qt5排版功能163
5.5.1实现段落对齐164
5.5.2实现文本排序165
第6章Qt5图形与图片169
6.1Qt5位置相关函数169
6.1.1区别概述169
6.1.2【实例】:位置函数的使用170
6.2Qt5基础图形的绘制174
6.2.1绘图框架设计174
6.2.2绘图区的实现175
6.2.3主窗口的实现180
6.3Qt5双缓冲机制193
6.3.1原理与设计193
6.3.2绘图区的实现195
6.3.3主窗口的实现198
6.4显示Qt5SVG格式图片201
L6.4Qt5SVG格式图片显示:概念解析207
XML207
第7章Qt5图形视图框架209
7.1图形视图体系结构209
7.1.1GraphicsView的特点209
7.1.2GraphicsView的三元素209
7.1.3GraphicsView的坐标系统211
7.2【实例】:图形视图213
7.2.1飞舞的蝴蝶213
7.2.2地图浏览器216
7.2.3图元创建222
7.2.4图元的旋转、缩放、切变和位移232
第8章Qt5模型/视图结构239
8.1概述239
8.1.1基本概念240
8.1.2【实例】:模型/视图类使用240
8.2模型(Model)242
8.3视图(View)246
8.4代理(Delegate)259
第9章Qt5文件及磁盘处理268
9.1读写文本文件268
9.1.1QFile类读写文本268
9.1.2QTextStream类读写文本270
9.2读写二进制文件272
9.3目录操作与文件系统274
9.3.1文件大小及路径获取实例274
9.3.2文件系统浏览276
9.4获取文件信息280
9.5监视文件和目录变化284
第10章Qt5网络与通信287
10.1获取本机网络信息287
10.2基于UDP的网络广播程序291
10.2.1UDP协议工作原理291
10.2.2UDP编程模型291
10.2.3【实例】:UDP服务器编程292
10.2.4【实例】:UDP客户端编程294
10.3基于TCP的网络聊天室程序297
10.3.1TCP协议工作原理298
10.3.2TCP编程模型298
10.3.3【实例】:TCP服务器编程299
10.3.4【实例】:TCP客户端编程305
10.4Qt网络应用开发初步310
10.4.1【实例】:简单网页浏览器311
10.4.2文件下载实例312
第11章Qt5事件处理及实例316
11.1鼠标事件及实例316
11.2键盘事件及实例319
11.3事件过滤及实例325
第12章Qt5多线程331
12.1多线程及简单实例331
12.2多线程控制335
12.2.1互斥量336
12.2.2信号量337
12.2.3线程等待与唤醒341
12.3多线程应用344
12.3.1【实例】:服务器编程344
12.3.2【实例】:客户端编程349
第13章Qt5数据库354
13.1数据库基本概念354
13.2常用SQL命令357
13.2.1数据查询357
13.2.2数据操作361
13.3Qt操作数据库及实例362
13.3.1Qt操作SQLite数据库363
13.3.2Qt操作主/从视图及XML369
第14章Qt5多国语言国际化400
14.1基本概念400
14.1.1国际化支持的实现400
14.1.2翻译工作:“*.qm”文件的生成401
14.2【实例】:国际化测试402
14.2.1简单测试402
14.2.2选择语言翻译文字406
第15章Qt5单元测试框架411
15.1QTestLib框架411
15.2简单的Qt单元测试411
15.3数据驱动测试416
15.4简单性能测试419
第16章【综合实例】:汽车销售管理系统421
16.1功能介绍与界面设计421
16.1.1功能简介421
16.1.2主界面设计422
16.1.3菜单设计423
16.2实现品牌车管理功能425
16.2.1出售车辆425
16.2.2日销售清单431
16.3销售统计图表功能436
16.3.1视图设计436
16.3.2界面设计440
16.4添加登录界面443
第17章【综合实例】:Qt版Word字处理软件447
17.1核心功能界面演示447
17.2界面设计与开发448
17.2.1建立MDI程序框架449
17.2.2菜单系统设计453
17.2.3工具栏设计464
17.2.4子窗口管理468
17.2.5界面生成试运行475
17.3基本编辑功能实现479
17.3.1打开文件479
17.3.2保存文件482
17.3.3文本操作485
17.4文档排版美化功能实现487
17.4.1字体格式设置487
17.4.2段落对齐设置490
17.4.3颜色设置491
17.4.4段落标号、编号492
17.4.5文档打印与预览495
第18章【综合实例】:Qt版聊天软件498
18.1核心功能界面演示498
18.2界面设计与开发499
18.2.1创建“抽屉盒”499
18.2.2设计聊天窗口504
18.2.3将图片按钮与聊天窗口关联506
18.3基本聊天会话功能实现511
18.3.1基本原理511
18.3.2消息类型与UDP广播512
18.3.3会话过程的处理516
18.3.4聊天程序试运行518
18.4文件传输功能实现519
18.4.1需求方案519
18.4.2服务器开发520
18.4.3客户端开发526
18.4.4主界面的控制531
18.4.5文件传输试验534
18.5附加功能实现535
18.5.1更改字体、字号和颜色535
18.5.2字体切换537
18.5.3保存和清除聊天记录538
第19章QML编程基础540
19.1QML概述540
19.1.1第一个QML程序540
19.1.2QML文档构成543
19.1.3QML基本语法544
19.2QML可视元素547
19.2.1Rectangle(矩形)元素547
19.2.2Image(图像)元素549
19.2.3Text(文本)元素550
19.2.4自定义元素(组件)552
19.3QML元素布局555
19.3.1Positioner(定位器)555
19.3.2Anchor(锚)559
19.4QML事件处理564
19.4.1鼠标事件564
19.4.2键盘事件566
19.4.3输入控件与焦点569
19.5QML集成JavaScript571
19.5.1调用JavaScript函数571
19.5.2导入JS文件573
第20章QML动画特效576
20.1QML动画元素576
20.1.1PropertyAnimation元素576
20.1.2其他动画元素581
20.1.3Animator元素583
20.2动画流UI界面585
20.2.1状态和切换586
20.2.2设计组合动画589
20.3图像特效592
20.3.13D旋转592
20.3.2色彩处理594
20.4Qt5.5(QtQuickExtras1.4)新增饼状菜单596
第21章QtQuickControls开发基础599
21.1QtQuickControls概述599
21.1.1第一个QtQuickControls程序599
21.1.2QtQuick窗体应用程序的构成601
21.2QtQuick控件606
21.2.1概述606
21.2.2基本控件607
21.2.3高级控件612
21.2.4样式定制617
21.3QtQuick对话框625
21.4QtQuick导航视图631
21.5Qt5.5(QtQuickControls1.4)新增组件636
第22章QtQuickControls2新颖界面开发641
22.1QtQuickControls2简介641
22.1.1第一个QtQuickControls2程序642
22.1.2QtQuickControls2程序的构成645
22.2QtQuickControls2与1的比较649
22.2.1ApplicationWindow结构不同649
22.2.2Menu不支持窗口主菜单653
22.2.3控件实现差异655
22.3滑动翻页及隐藏面板660
22.4选项列表665
22.5带功能按钮的列表669
第23章【综合实例】:多功能文档查看器676
23.1核心功能界面演示676
23.2界面与程序框架设计678
23.2.1准备应用资源679
23.2.2主程序代码框架680
23.3浏览网页功能实现687
23.3.1实现HtmlHandler处理器687
23.3.2编写Action692
23.3.3定义主显示区元素692
23.3.4实现“打开网页”对话框692
23.4阅读文本功能实现693
23.4.1实现TextHandler处理器694
23.4.2编写Action697
23.4.3定义主显示区元素698
23.4.4实现“打开文本”对话框699
23.5查看图片功能实现700
23.5.1编写Action700
23.5.2定义主显示区元素701
23.5.3实现“打开图片”对话框702
23.5.4对图片的处理703
附录AC++相关知识705
A.1C++程序结构705
A.2C++预处理706
A.3C++异常处理708
A.4C++面向对象编程711
附录BQt5简单调试721
B.1修正语法错误721
B.2设置断点722
B.3程序调试运行722
B.4查看和修改变量的值723
B.5qDebug()的用法726
前言
Qt是软件开发领域非常著名的C++可视化开发平台,能够为应用程序开发者提供建立艺术级图形用户界面所需的所有功能。它是完全面向对象的,很容易扩展,并且可应用于组件编程。目前,Qt的最新版本为Qt5.8。
2014年,我们编写了《Qt5开发及实例》,受到市场的广泛欢迎。2015年,《Qt5开发及实例(第2版)》推出,它以Qt5.4为平台,增加了QML及QtQuick开发部分,继续受到市场的广泛推崇。
《Qt5开发及实例(第3版)》以Qt5.8为平台,介绍Qt概述,Qt5模板库、工具类及控件,Qt5布局管理,Qt5基本对话框,Qt5主窗口,Qt5图形与图片,Qt5图形视图框架,Qt5模型/视图结构,Qt5文件及磁盘处理,Qt5网络与通信,Qt5事件处理及实例,Qt5多线程,Qt5数据库,Qt5多国语言国际化,Qt5单元测试框架,【综合实例】:汽车销售管理系统,【综合实例】:Qt版Word字处理软件,【综合实例】:Qt版聊天软件,QML编程基础,QML动画特效,QtQuickControls开发基础,QtQuickControls2新颖界面开发,【综合实例】:多功能文档查看器;附录介绍C++相关知识和Qt简单调试。《Qt5开发及实例(第3版)》在保持前面版本特点的基础上,重新整编原有内容,重新构建和调试所有实例,同时将Qt5.5和Qt5.8新组件和功能融入其中,同步配套相应的实例,对新增加的QtQuickControls2专门增加一章进行介绍。通过几个大综合实例应用Qt主要内容。
为了方便读者上机练习,在书中实例介绍时提供源代码编号CH×××(如CH201是第2章的01例),这些代码和配套课件通过光盘直接提供,同时可在华信教育资源网(http://www.hxedu.com.cn)上免费下载。
通过学习《Qt5开发及实例(第3版)》,结合实例上机练习,一般能够在比较短的时间内系统、全面地掌握Qt5应用技术。
《Qt5开发及实例(第3版)》由陆文周主编。参加《Qt5开发及实例(第3版)》编写的还有曹弋、徐文胜、丁有和、殷红先、陈瀚、陈冬霞、邓拼搏、高茜、刘博宇、彭作民、钱晓军、孙德荣、陶卫冬、吴明祥、王志瑞、徐斌、俞琰、严大牛、郑进、周何骏、于金彬、马骏、周怡明、姜乃松、梁敬东等。
由于编者水平有限,错误之处在所难免,敬请广大读者、师生批评指正。
意见、建议邮箱:easybooks@163.com。
编者









