基本应用篇 2
第1章 QtCreator简介 2
1.1 QtCreator的下载与安装 2
1.1.1下载软件 2
1.1.2安装软件 3
1.2QtCreator环境介绍 3
1.2.1运行一个示例程序 6
1.2.2帮助模式 8
1.3 Qt工具简介 9
1.3.1 QtAssistant(Qt助手) 9
1.3.2 QtDesigner(Qt设计师) 10
1.3.3 QtExamplesandDemos(Qt演示程序与示例) 10
1.3.4 QtLinguist(Qt语言家) 10
1.4小结 11
第2章 HelloWorld 12
2.1编写 HelloWorld程序 12
2.1.1新建 QtGui应用 12
2.1.2文件说明与界面设计 14
2.2程序的运行与发布 16
2.2.1程序的运行 16
2.2.2程序的发布 19
2.2.3设置应用程序图标 20
2.3 helloworld程序源码与编译过程详解 22
2.3.1纯代码编写程序与命令行编译 22
2.3.2使用.ui文件 27
2.3.3自定义C++类 31
2.3.4使用Qt设计师界面类 34
2.4项目模式和项目文件介绍 34
2.4.1项目模式 34
2.4.2项目文件 35
2.4.3关于本书源码的使用 36
2.5小结 37
第3章窗口部件 38
3.1基础窗口部件QWidget 39
3.1.1窗口、子部件以及窗口类型 39
3.1.2窗口几何布局 42
3.1.3程序调试 42
3.2对话框QDialog 45
3.2.1模态和非模态对话框 46
3.2.2多窗口切换 47
3.2.3标准对话框 51
3.3其他窗口部件 59
3.3.1QFrame类族 59
3.3.2按钮部件 63
3.3.3行编辑器 65
3.3.4数值设定框 67
3.3.5滑块部件 68
3.4小结 69
第4章布局管理 70
4.1布局管理系统 70
4.1.1布局管理器 71
4.1.2设置部件大小 74
4.1.3可扩展窗口 77
4.1.4分裂器 78
4.2设置伙伴 78
4.3设置Tab键顺序 79
4.4小结 80
第5章应用程序主窗口 81
5.1主窗口框架 81
5.1.1菜单栏和工具栏 82
5.1.2中心部件 86
5.1.3Dock部件 87
5.1.4状态栏 88
5.1.5自定义菜单 89
5.2富文本处理 92
5.2.1富文本文档结构 92
5.2.2文本块 93
5.2.3表格、列表与图片 97
5.2.4查找功能 99
5.2.5语法高亮与HTML 100
5.3拖放操作 102
5.3.1使用拖放打开文件 102
5.3.2自定义拖放操作 103
5.4打印文档 107
5.5小结 109
第6章事件系统 110
6.1Qt中的事件 110
6.1.1事件的处理 111
6.1.2事件的传递 111
6.2鼠标事件和滚轮事件 115
6.3键盘事件 117
6.4定时器事件与随机数 120
6.5事件过滤器与事件的发送 123
6.6小结 125
第7章Qt对象模型与容器类 126
7.1对象模型 126
7.1.1信号和槽 127
7.1.2属性系统 132
7.1.3对象树与拥有权 135
7.1.4元对象系统 137
7.2容器类 138
7.2.1Qt的容器类简介 138
7.2.2遍历容器 143
7.2.3通用算法 150
7.2.4QString 152
7.2.5QByteArray和QVariant 157
7.3正则表达式 159
7.3.1正则表达式简介 160
7.3.2正则表达式组成元素 162
7.3.3文本捕获 165
7.4小结 166
第8章界面外观 167
8.1Qt风格 167
8.1.1使用不同风格预览程序 168
8.1.2使用不同风格运行程序 168
8.1.3调色板 169
8.2 Qt样式表 170
8.2.1概述 170
8.2.2Qt样式表语法 172
8.2.3自定义部件外观与换肤 174
8.3特殊效果窗体 178
8.3.1不规则窗体 178
8.3.2透明窗体 179
8.4小结 181
第9章国际化、帮助系统和Qt插件 182
9.1国际化 182
9.1.1使用 QtLinguist翻译应用程序 183
9.1.2程序翻译中的相关问题 188
9.2帮助系统 191
9.2.1简单的帮助提示 191
9.2.2定制QtAssistant 191
9.3创建Qt插件 199
9.3.1在设计模式提升窗口部件 199
9.3.2创建应用程序插件 200
9.3.3创建QtDesigner自定义部件 205
9.4小结 206
图形动画篇 208
第10章2D绘图 208
10.1基本绘制和填充 208
10.1.1基本图形的绘制和填充 208
10.1.2渐变填充 213
10.2坐标系统 216
10.2.1抗锯齿渲染 216
10.2.2坐标变换 219
10.3其他绘制 226
10.3.1绘制文字 226
10.3.2绘制路径 228
10.3.3绘制图像 230
10.3.4复合模式 236
10.4双缓冲绘图 237
10.5绘图中的其他问题 240
10.5.1重绘事件 240
10.5.2剪切 241
10.5.3读取和写入图像 241
10.5.4播放gif动画 241
10.5.5渲染SVG文件 241
10.6小结 242
第11章图形视图、动画和状态机框架 243
11.1图形视图框架的结构 243
11.1.1场景 244
11.1.2视图 245
11.1.3图形项 247
11.2图形视图框架的坐标系统和事件处理 249
11.2.1坐标系统 249
11.2.2事件处理与传播 254
11.3图形视图框架的其他特性 258
11.3.1图形效果 258
11.3.2动画、碰撞检测和图形项组 260
11.3.3打印和使用OpenGL进行渲染 263
11.3.4窗口部件、布局和内嵌部件 264
11.4动画框架 266
11.4.1实现属性动画 267
11.4.2使用缓和曲线 268
11.4.3动画组 268
11.4.4在图形视图框架中使用动画 270
11.5状态机框架 272
11.5.1创建状态机 272
11.5.2在状态机中使用动画 274
11.5.3状态机框架的其他特性 275
11.6小结 282
第12章3D绘图 283
12.1使用OpenGL绘制图形 283
12.2设置颜色 286
12.3实现3D图形 286
12.4使用纹理贴图 288
12.5在3D场景中绘制2D图形 290
12.6小结 292
影音媒体篇 294
第13章Qt多媒体应用 294
13.1使用QSound播放声音 294
13.2使用QMovie播放动画 296
13.3多媒体的底层控制 299
13.4小结 303
第14章Phonon多媒体框架 304
14.1Phonon多媒体框架的架构 304
14.1.1Phonon媒体图中的节点 305
14.1.2播放后端 306
14.2播放音频 306
14.2.1实现简单的音频播放 306
14.2.2创建音频流媒体图 307
14.2.3使用音频效果 307
14.3播放视频 308
14.3.1实现简单的视频播放 308
14.3.2创建播放视频的媒体图 309
14.3.3控制视频播放 309
14.4小结 315
数据处理篇 317
第15章文件、目录和输入/输出 317
15.1文件和目录 317
15.1.1输入/输出设备 317
15.1.2文件操作 318
15.1.3目录操作 321
15.2文本流和数据流 324
15.2.1使用文本流读/写文本文件 324
15.2.2使用数据流读/写二进制数据 325
15.3其他相关类 328
15.3.1应用程序设置 328
15.3.2统一资源定位符 328
15.3.3Qt资源 329
15.3.4缓冲区 329
15.4小结 330
第16章模型/视图编程 331
16.1模型/视图架构 331
16.1.1组成部分 332
16.1.2简单的例子 333
16.2模型类 334
16.2.1基本概念 334
16.2.2创建新的模型 338
16.3视图类 344
16.3.1基本概念 344
16.3.2处理项目选择 345
16.4委托类 350
16.4.1基本概念 350
16.4.2自定义委托 351
16.5项目视图的便捷类 353
16.5.1 QListWidget 354
16.5.2 QTreeWidget 355
16.5.3 QTableWidget 356
16.5.4共同特性 357
16.6在项目视图中启用拖放 357
16.6.1在便捷类中启用拖放 357
16.6.2在模型/视图类中启用拖放 359
16.7其他内容 362
16.7.1代理模型 362
16.7.2数据—窗口映射器 363
16.8小结 365
第17章数据库和XML 366
17.1数据库 366
17.1.1连接到数据库 367
17.1.2执行SQL语句 372
17.1.3使用SQL模型类 376
17.2 XML 384
17.2.1 DOM 384
17.2.2 SAX 394
17.2.3 XML流 398
17.3小结 402
网络通信篇 404
第18章网络编程 404
18.1 HTTP 404
18.2 FTP 408
18.3获取网络接口信息 416
18.4 UDP 419
18.5 TCP 422
18.6小结 436
第19章进程和线程 437
19.1进程 437
19.1.1运行一个进程 437
19.1.2进程间通信 440
19.2线程 444
19.2.1使用QThread启动线程 444
19.2.2同步线程 447
19.2.3可重入与线程安全 450
19.2.4线程和QObject 452
19.3小结 454
第20章WebKit 455
20.1 QtWebKit模块 455
20.2基于QtWebKit的网页浏览器 456
20.2.1显示一个网页 456
20.2.2显示网站图标 459
20.2.3显示历史记录 461
20.2.4链接跳转和查找功能 463
20.3小结 464
参考文献 465