部分Qt基础
章Qt概述1
1.1什么是Qt1
1.2Qt5的安装2
1.2.1下载Qt和申请免费账号2
1.2.2安装Qt5.114
1.2.3运行QtCreator6
1.2.4Qt5开发环境7
1.3Qt5开发步骤及实例8
1.3.1设计器QtDesigner实现9
1.3.2代码实现简单实例15
1.3.3Qt低版本实例迁移18
L1.2Qt5的安装:概念解析19
伙伴编辑模式(EditBuddies)19
L1.3Qt5开发步骤及实例:概念解析19
L1信号和槽机制(Signal&Slot)19
L2Qt5元对象系统21
L3布局管理器21
第2章Qt5模板库、工具类及控件22
2.1字符串类22
2.1.1操作字符串22
2.1.2查询字符串数据23
2.1.3字符串的转换24
2.2容器类25
2.2.1QList类、QLinkedList类和QVector类26
2.2.2QMap类和QHash类31
2.3QVariant类33
2.4算法及正则表达式36
2.4.1Qt5常用算法36
2.4.2基本的正则表达式37
2.5控件37
2.5.1按钮组(Buttons)38
2.5.2输入部件组(InputWidgets)39
2.5.3显示控件组(DisplayWidgets)40
2.5.4空间间隔组(Spacers)41
2.5.5布局管理组(Layouts)41
2.5.6容器组(Containers)42
2.5.7项目视图组(ItemViews)44
2.5.8项目控件组(ItemWidgets)46
2.5.9小综合例子49
L2.1字符串类QString:概念解析52
L1隐式共享52
L2内存分配策略53
L2.5Qt5控件:概念解析54
Qt::WindowFlags枚举类型54
第3章Qt5布局管理56
3.1分割窗口QSplitter类56
3.2停靠窗口QDockWidget类58
3.3堆栈窗体QStackedWidget类61
3.4基本布局(QLayout)63
3.5【综合实例】(CH305):修改用户资料68
第4章Qt5基本对话框78
4.1标准文件对话框类81
4.1.1函数说明81
4.1.2创建步骤82
4.2标准颜色对话框类83
4.2.1函数说明83
4.2.2创建步骤83
4.3标准字体对话框类84
4.3.1函数说明84
4.3.2创建步骤84
4.4标准输入对话框类85
4.4.1标准字符串输入对话框88
4.4.2标准条目选择对话框89
4.4.3标准int类型输入对话框89
4.4.4标准double类型输入对话框90
4.5消息对话框类91
4.5.1Question消息框93
4.5.2Information消息框94
4.5.3Warning消息框95
4.5.4Critical消息框96
4.5.5About消息框96
4.5.6AboutQt消息框97
4.6自定义消息框97
4.7工具盒类98
4.8进度条102
4.9调色板与电子钟106
4.9.1QPalette类106
4.9.2QTime类112
4.9.3【综合实例】电子时钟112
4.10可扩展对话框115
4.11不规则窗体118
4.12程序启动画面(QSplashScreen)121
第5章Qt5主窗口123
5.1Qt5主窗口构成123
5.1.1基本元素123
5.1.2【综合实例】文本编辑器124
5.1.3菜单与工具栏的实现127
5.2Qt5文件操作功能132
5.2.1新建文件132
5.2.2打开文件132
5.2.3打印文件134
5.3Qt5图像坐标变换137
5.3.1缩放功能137
5.3.2旋转功能138
5.3.3镜像功能140
5.4Qt5文本编辑功能141
5.4.1设置字体144
5.4.2设置字号144
5.4.3设置文字加粗144
5.4.4设置文字斜体145
5.4.5设置文字加下画线145
5.4.6设置文字颜色145
5.4.7设置字符格式146
5.5Qt5排版功能146
5.5.1实现段落对齐148
5.5.2实现文本排序148
第6章Qt5图形与图片152
6.1Qt5位置相关函数152
6.1.1区别概述152
6.1.2【实例】位置函数的应用153
6.2Qt5基础图形的绘制156
6.2.1绘图框架设计156
6.2.2绘图区的实现157
6.2.3主窗口的实现161
6.3Qt5双缓冲机制173
6.3.1原理与设计173
6.3.2绘图区的实现174
6.3.3主窗口的实现178
6.4显示Qt5SVG格式图片180
L6.4Qt5SVG格式图片显示:概念解析185
XML185
第7章Qt5图形视图框架187
7.1图形视图体系结构187
7.1.1GraphicsView框架结构的主要特点187
7.1.2GraphicsView框架结构的三元素187
7.1.3GraphicsView框架结构的坐标系统189
7.2【实例】图形视图190
7.2.1飞舞的蝴蝶190
7.2.2地图浏览器194
7.2.3图元创建198
7.2.4图元的旋转、缩放、切变和位移207
第8章Qt5模型/视图结构214
8.1概述214
8.1.1基本概念214
8.1.2【实例】模型/视图类使用215
8.2模型(Model)217
8.3视图(View)220
8.4代理(Delegate)232
第9章Qt5文件及磁盘处理240
9.1读写文本文件240
9.1.1使用QFile类读写文本240
9.1.2使用QTextStream类读写文本241
9.2读写二进制文件243
9.3目录操作与文件系统245
9.3.1文件大小及路径获取实例246
9.3.2文件系统浏览247
9.4获取文件信息251
9.5监视文件和目录变化255
0章Qt5网络与通信257
10.1获取本机网络信息257
10.2基于UDP的网络广播程序260
10.2.1UDP工作原理260
10.2.2UDP编程模型261
10.2.3【实例】UDP服务器编程261
10.2.4【实例】UDP客户端编程264
10.3基于TCP的网络聊天室程序266
10.3.1TCP工作原理267
10.3.2TCP编程模型267
10.3.3【实例】TCP服务器端编程267
10.3.4【实例】TCP客户端编程273
10.4Qt网络应用开发初步278
10.4.1【实例】简单网页浏览器279
10.4.2文件下载实例280
1章Qt5事件处理及实例283
11.1鼠标事件及实例283
11.2键盘事件及实例285
11.3事件过滤及实例291
2章Qt5多线程297
12.1多线程及简单实例297
12.2多线程控制301
12.2.1互斥量301
12.2.2信号量302
12.2.3线程等待与唤醒305
12.3多线程应用309
12.3.1【实例】服务器端编程309
12.3.2【实例】客户端编程313
3章Qt5数据库318
13.1数据库基本概念318
13.2常用SQL命令321
13.2.1数据查询321
13.2.2数据操作324
13.3Qt操作数据库及实例325
13.3.1Qt操作SQLite数据库326
13.3.2Qt操作主/从视图及XML332
4章Qt5操作Office实例359
14.1Qt操作Office的基本方式359
14.1.1QAxObject对象访问359
14.1.2AxWidget界面显示361
14.1.3项目配置362
14.2Qt对Office的基本读写363
14.2.1程序界面363
14.2.2全局变量及方法364
14.2.3对Excel的读写365
14.2.4对Word的读写367
14.3Excel公式计算及显示:统计高考录取人数与录取率369
14.3.1程序界面369
14.3.2全局变量及方法370
14.3.3功能实现371
14.3.4运行演示373
14.4Qt操作Word应用375
14.4.1读取Word表格数据:中国历年高考数据检索375
14.4.2向文档输出表格:输出近5年的高考信息统计表378
5章Qt5多国语言国际化384
15.1基本概念384
15.1.1国际化支持的实现384
15.1.2翻译工作:“*.qm”文件的生成385
15.2【实例】语言国际化应用385
15.2.1简单测试385
15.2.2选择语言翻译文字389
6章Qt5单元测试框架394
16.1QTestLib框架394
16.2简单的Qt单元测试394
16.3数据驱动测试398
16.4简单性能测试401
第2部分Qt综合实例
7章【综合实例】电子商城系统403
17.1商品管理系统功能需求403
17.1.1登录功能403
17.1.2新品入库功能404
17.1.3预售订单功能404
17.2项目开发准备405
17.2.1项目配置405
17.2.2数据库准备407
17.3商品管理系统界面设计411
17.3.1总体设计411
17.3.2“新品入库”页412
17.3.3“预售订单”页413
17.3.4登录窗口414
17.4商品管理系统功能实现417
17.4.1登录功能实现417
17.4.2主体程序框架419
17.4.3界面初始化功能实现424
17.4.4新品入库功能实现427
17.4.5预售订单功能实现429
17.5商品管理系统运行演示431
17.5.1登录电子商城431
17.5.2新品入库和清仓432
17.5.3预售下订单432
8章【综合实例】MyWord字处理软件434
18.1核心功能界面演示434
18.2界面设计与开发435
18.2.1菜单系统设计435
18.2.2工具栏设计443
18.2.3建立MDI程序框架446
18.2.4子窗口管理449
18.2.5界面生成试运行456
18.3基本编辑功能实现456
18.3.1打开文档456
18.3.2保存文档459
18.3.3文档操作462
18.4文档排版美化功能实现464
18.4.1字体格式设置464
18.4.2段落对齐设置467
18.4.3颜色设置469
18.4.4段落标号、编号470
18.4.5文档打印与预览473
9章【综合实例】微信客户端程序476
19.1界面设计与开发476
19.1.1核心功能界面演示476
19.1.2登录对话框设计479
19.1.3聊天窗口设计480
19.1.4文件传输服务器界面设计482
19.1.5文件传输客户端界面设计483
19.2登录功能实现483
19.3基本聊天会话功能实现486
19.3.1基本原理487
19.3.2消息类型与UDP广播487
19.3.3会话过程的处理492
19.3.4聊天程序试运行494
19.4文件传输功能实现494
19.4.1基本原理494
19.4.2服务器开发495
19.4.3客户端开发500
19.4.4主界面的控制503
19.4.5文件传输试验506
第3部分Qt扩展应用:OpenCV
第20章Qt5.11.1+OpenCV(含Contrib)-3.4.3环境搭建509
20.1安装CMake509
20.2添加系统环境变量510
20.3下载OpenCV510
20.4下载Contrib511
20.5编译前准备512
20.6编译配置515
20.7开始编译519
20.8安装OpenCV库520
第21章OpenCV图片处理522
21.1图片美化523
21.1.1图片增强523
21.1.2平滑滤波529
21.2多图合成535
21.2.1程序界面536
21.2.2全局变量及方法537
21.2.3初始化显示537
21.2.4功能实现538
21.2.5运行效果539
21.3图片旋转缩放540
21.3.1程序界面540
21.3.2全局变量及方法541
21.3.3初始化显示542
21.3.4功能实现543
21.3.5运行效果544
21.4图片智能识别545
21.4.1寻找匹配物体545
21.4.2人脸识别550
第22章【综合实例】医院远程诊断系统555
22.1远程诊断系统功能需求555
22.1.1诊疗点科室管理555
22.1.2CT影像显示和处理556
22.1.3患者信息选项卡556
22.1.4后台数据库浏览556
22.1.5界面的总体效果557
22.2Qt项目工程创建与配置557
22.3远程诊疗系统界面设计560
22.4远程诊疗系统功能实现563
22.4.1数据库准备563
22.4.2Qt应用程序主体框架565
22.4.3界面初始化功能实现570
22.4.4诊断功能实现572
22.4.5患者信息表单574
22.5远程诊疗系统运行演示576
22.5.1启动、连接数据库576
22.5.2执行诊断分析577
22.5.3表单信息联动579
22.5.4查看病历579
第4部分QML和QtQuick及其应用
第23章QML编程基础580
23.1QML概述580
23.1.1个QML程序581
23.1.2QML文档构成584
23.1.3QML基本语法584
23.2QML可视元素587
23.2.1Rectangle(矩形)元素587
23.2.2Image(图像)元素589
23.2.3Text(文本)元素590
23.2.4自定义元素(组件)592
23.3QML元素布局594
23.3.1Positioner(定位器)594
23.3.2Anchor(锚)598
23.4QML事件处理602
23.4.1鼠标事件602
23.4.2键盘事件604
23.4.3输入控件与焦点606
23.5QML集成JavaScript609
23.5.1调用JavaScript函数609
23.5.2导入JS文件610
第24章QML动画特效613
24.1QML动画元素613
24.1.1PropertyAnimation元素613
24.1.2其他动画元素618
24.1.3Animator元素620
24.2动画流UI界面621
24.2.1状态和切换622
24.2.2设计组合动画625
24.3图像特效627
24.3.13D旋转627
24.3.2色彩处理629
24.4Qt5.5(QtQuickExtras1.4)新增饼状菜单631
第25章QtQuickControls开发基础634
25.1QtQuickControls概述634
25.1.1个QtQuickControls程序634
25.1.2QtQuick窗体应用程序的构成636
25.2QtQuick控件640
25.2.1概述640
25.2.2基本控件641
25.2.3不错控件646
25.2.4样式定制650
25.3QtQuick对话框657
25.4QtQuick导航视图662
25.5Qt5.5(QtQuickControls1.4)新增组件667
第26章QtQuickControls2新颖界面开发671
26.1QtQuickControls2简介671
26.1.1个QtQuickControls2程序672
26.1.2QtQuickControls2程序的构成675
26.2QtQuickControls2与QtQuickControls1的比较678
26.2.1ApplicationWindow结构不同678
26.2.2Menu不支持窗口主菜单681
26.2.3控件实现差异683
26.3滑动翻页及隐藏面板688
26.4选项列表693
26.5带功能按钮的列表696
第27章【综合实例】多功能文档查看器702
27.1核心功能界面演示702
27.2界面与程序框架设计703
27.2.1准备应用资源704
27.2.2主程序代码框架705
27.3浏览网页功能实现712
27.3.1实现HtmlHandler处理器712
27.3.2编写Action716
27.3.3定义主显示区元素716
27.3.4实现“打开网页”对话框716
27.4阅读文本功能实现717
27.4.1实现TextHandler处理器718
27.4.2编写Action721
27.4.3定义主显示区元素722
27.4.4实现“打开文本”对话框722
27.5查看图片功能实现723
27.5.1编写Action723
27.5.2定义主显示区元素725
27.5.3实现“打开图片”对话框725
27.5.4对图片的处理726
第5部分附录
附录AC++相关知识727
A.1C++程序结构727
A.2C++预处理命令728
A.3C++异常处理730
A.4C++面向对象编程732
附录BQt5简单调试741
B.1修正语法错误741
B.2设置断点742
B.3程序调试运行742
B.4查看和修改变量的值743
B.5qDebug()的用法745