第1章 Qt概述 1
1.1 Qt程序设计简介 1
1.1.1 Qt版本介绍 2
1.1.2 创建可重用的软件模式 2
1.1.3 怎样学习Qt 6
1.2 Qt对象类模型 7
1.2.1 信号与槽 8
1.2.2 对象与对象树 12
1.2.3 对象属性 12
1.2.4 事件和事件过滤器 13
1.2.5 元对象编译系统 16
1.3 Qt全局函数 18
1.4 Qt的命名技巧 19
1.5 Qt开发工具的优点 20
1.6 各种平台安装的方法X11/Window 20
1.6.1 tar包安装方式 21
1.6.2 Window平台安装 22
1.6.3 在X11平台上安装 23
1.7 X Window桌面系统 24
1.8 QApplication类 28
1.9 实例:Hello the World 30
1.10 窗口的基础类QWidget 32
1.11 入门级实例:设计一个用户界面 35
1.12 入门级程序:添加地址 37
1.13 入门实例:地址簿浏览程序 41
1.14 入门级实例:编辑与删除地址 44
1.15 入门级实例:地址簿查找功能 47
1.16 入门实例:从文件中加载与保存到文件 50
第2章 Qt模块与Qt功能类 54
2.1 Qt常用模块 54
2.2 Qt部件与组类说明 54
2.3 基于图形模式部件类 55
2.3.1 窗口与窗口相关部件 59
2.3.2 布局管理 60
2.3.3 桌面环境 60
2.3.4 多媒体、图形与打印 61
2.3.5 日期与时间 63
2.4 网络与I/O 63
2.4.1 输入/输出(I/O) 63
2.4.2 网络编程设计 65
2.4.3 文本处理 65
2.5 Qt公有部件 66
2.5.1 数据库部件 66
2.5.2 脚本部件 67
2.5.3 线程部件 67
第3章 Qt文件操作 68
3.1 Linux下的文件 68
3.1.1 标准C语言文件操作 68
3.1.2 实例:C语言下文件读写操作 69
3.2 文件的访问 69
3.2.1 抽象文件引擎类 69
3.2.2 读写文件界面 70
3.2.3 获得文件信息 70
3.2.4 监视一个文件与目录 71
3.3 编码与字符串 71
3.3.1 双字节编码字符串 73
3.3.2 字符串队列 77
3.3.3 字节数组 77
3.3.4 二进制比特数组 78
3.3.5 哈希表字典 78
3.3.6 高速缓冲模板 79
3.3.7 文件输入/输出类 81
3.4 文件与设备 84
3.4.1 访问输入/输出设备基础界面 86
3.4.2 访问目录结构内容 87
3.4.3 设备与文件图片读界面 88
3.4.4 设备与文件图片写界面 89
3.5 文本流与二进制数据流 89
3.5.1 数据流 89
3.5.2 文件流 90
3.6 监视一个活动文件与活动目录 91
3.7 临时文件 91
3.8 文件打开事件 91
3.9 实例:一个简单的文本浏览的例子 93
3.10 实例:在指定文件系统中寻找一个文件 102
3.11 实例:用Qt类读取一个目录与驱动盘符 108
3.12 实例:基本布局管理 110
3.13 实例:文本查找 112
第4章 Qt桌面软件设计 116
4.1 X11窗口系统信息 116
4.2 窗口布局管理 118
4.2.1 布局简介 119
4.2.2 横向、纵向和网状布局 119
4.2.3 标题的布局 120
4.2.4 带标题组框 121
4.2.5 几何管理基类 121
4.2.6 添加部件到布局当中 122
4.3 键盘焦点 122
4.4 菜单、工具栏与状态栏 122
4.4.1 菜单、工具栏 122
4.4.2 状态栏 123
4.4.3 用户动作 123
4.5 多文档窗口显示QMdiArea 124
4.6 设置应用程序图标 124
4.6.1 在Windows操作系统上设置图标 124
4.6.2 在Linux操作系统上设置图标 125
4.7 高级窗口部件 125
4.8 系统托盘 126
4.9 窗口事件与事件过滤 126
4.9.1 事件基类 126
4.9.2 事件运行方式 127
4.9.3 事件类型 127
4.10 实例:组框的使用 129
4.11 实例:标准菜单使用方法 133
4.12 实例:最小化到系统托盘 142
4.13 实例:设计一个图片浏览的软件 149
4.14 实例:排积木程序 156
第5章 Qt程序与用户交互 165
5.1 液晶屏数字 165
5.1.1 QLCDNumber部件的详细描述 165
5.1.2 QTime类 166
5.2 行编辑器与标签 167
5.3 显示与编辑多文本 168
5.3.1 打印文本 168
5.3.2 调整文本光标界面 169
5.3.3 QClipboard类窗口剪切板 169
5.3.4 文档中的表格 170
5.4 旋转框、复选框与组合框 171
5.4.1 旋转框 171
5.4.2 复选框 171
5.4.3 组合框 171
5.5 时间与日期编辑部件 171
5.6 使用横向与纵向进度条 171
5.7 滑块与滑动区域滚动条 172
5.8 标准对话框 173
5.8.1 错误信息对话框 173
5.8.2 用户输入对话框 173
5.8.3 字体对话框 173
5.8.4 颜色对话框 174
5.8.5 打印配置对话框 174
5.9 模型与视图架构 175
5.9.1 模型 175
5.9.2 视图 175
5.10 Qt中的代理类 176
5.10.1 使用已存在的代理 176
5.10.2 使用简单的代理 176
5.10.3 向模型中提交数据 176
5.11 实例:颜色对话框 177
5.12 实例:标准对话框 183
5.13 实例:带有菜单栏与工具条的文本编辑器 185
5.14 实例:高亮度显示文本 194
第6章 Qt图形绘制与多媒体 200
6.1 Qt坐标系统 200
6.2 访问屏幕信息 202
6.3 绘画系统 203
6.3.1 图形的绘画 203
6.3.2 图形填充 203
6.3.3 创建绘画设备 203
6.3.4 写入一个图片文件 204
6.3.5 绘画样式 205
6.4 图形视图框架 205
6.4.1 图形视图框架的结构 205
6.4.2 图形视图坐标系统 207
6.4.3 主要特色 207
6.5 综合使用窗口 208
6.5.1 扩展资源的使用 209
6.5.2 系统托盘图标 211
6.5.3 窗口部件 211
6.6 跨平台使用打印系统 219
6.6.1 绘画设备与打印 219
6.6.2 在复杂的部件中绘画 220
6.7 Phonon模块简介 220
6.7.1 介绍 221
6.7.2 框架 221
6.7.3 媒体对象 221
6.8 基于平台声频文件访问 221
6.9 实例:基本绘画操作 222
6.10 实例:符合图形绘画 227
6.11 实例:根据坐标转换图形 233
第7章 Qt网络编程 239
7.1 OSI七层模型 242
7.1.1 OSI参考模型的提出 242
7.1.2 OSI参考模型的概念 242
7.1.3 OSI参考模型的结构 243
7.1.4 OSI参考模型各层的功能 243
7.2 进程间通信 244
7.2.1 什么是Bus 244
7.2.2 对象 245
7.2.3 消息 245
7.2.4 服务 245
7.3 伯克利套接字 245
7.3.1 通用元素 246
7.3.2 客户端函数 249
7.3.3 服务器函数 251
7.3.4 C语言网络编程模型 252
7.4 Qt封装套接字 257
7.4.1 TCP报文套接字 257
7.4.2 UDP报文套接字 258
7.4.3 基于TCP连接的服务器端 258
7.4.4 安全套接字 259
7.5 Qt网络主机信息类 260
7.5.1 获得主机名IP 261
7.5.2 静态主机查询 261
7.6 应用层协议类 261
7.6.1 HTTP应用层协议 261
7.6.2 HTTP头信息 261
7.6.3 请求HTTP头信息 262
7.6.4 响应HTTP头信息 262
7.6.5 FTP 262
7.6.6 客户端FTP连接 262
7.7 统一资源定位符 264
7.7.1 URL介绍 264
7.7.2 URL使用界面 264
7.7.3 存放URL信息 265
7.8 网络界面 265
7.9 网络层代理 265
7.10 实例:Qt编写客户端程序 266
7.11 实例:编写FTP客户端程序 270
7.12 实例:HTTP客户端 276
7.13 实例:收发广播报文 282
7.14 实例:HTML预览编辑程序 285
7.15 实例:Web浏览器 290
7.16 实例:屏幕截图程序 293
第8章 Qt数据库编程 298
8.1 数据库发展 298
8.1.1 数据库文件系统 299
8.1.2 数据库系统阶段 299
8.2 数据库模块的三层结构 299
8.2.1 用户接口层 299
8.2.2 SQL应用编程接口层 300
8.2.3 驱动程序层 300
8.3 SQL驱动程序插件 300
8.3.1 使用configure建立一个驱动 300
8.3.2 手动建立插件 301
8.4 连接数据库 301
8.4.1 使用QSqlQuery执行SQL命令 302
8.4.2 QtSql模块和作用 303
8.4.3 数据库索引 304
8.4.4 Qt4数据库图形层 304
8.5 基于数据的窗口部件 306
8.6 实例:SQL缓存表 306
8.7 实例:基于图片记录查询 309
8.8 实例:数据库基本浏览 319
8.9 实例:基本数据处理 322
第9章 Qt进程与线程 327
9.1 Qt内部进程通信 327
9.2 早期的IPC方法:信号与管道 332
9.3 信号机制 333
9.4 管道 333
9.5 基于平台的线程QThread 334
9.5.1 同步线程 335
9.5.2 线程安全的事件传递 339
9.5.3 Qt库互斥量 339
9.5.4 线程互斥锁 339
9.6 实例:曼德布洛特集合 343
第9章 Qt进程与线程 327
9.1 Qt内部进程通信 327
9.2 早期的IPC方法:信号与管道 332
9.3 信号机制 333
9.4 管道 333
9.5 基于平台的线程QThread 334
9.5.1 同步线程 335
9.5.2 线程安全的事件传递 339
9.5.3 Qt库互斥量 339
9.5.4 线程互斥锁 339
9.6 实例:曼德布洛特集合 343
第10章 Qt工具使用 352
10.1 Qt设计器使用 352
10.1.1 开始使用Qt设计器 352
10.1.2 建立部件与使用布局 352
10.1.3 在设计器中创建部件 354
10.1.4 使用信号与槽编辑器模式 356
10.2 Qt设计器编辑部件样式 356
10.3 编译器平台说明 357
10.4 Qt翻译工具 358
10.4.1 翻译过程的概述 358
10.4.2 发行管理 358
10.4.3 翻译器使用 359
10.4.4 TS文件格式 359
10.5 使用预定义头文件 360
10.5.1 添加一个预定义头文件到一个工程 360
10.5.2 工程选项 360
10.6 配置qmake环境 363
10.6.1 QMAKESPEC变量 363
10.6.2 INSTALLS 364
10.6.3 缓冲文件 364
10.7 使用qmake编译工程 364
10.7.1 qmake基础指南 365
10.7.2 qmake编译通用工程 365
10.7.3 qmake命令行 368
10.8 uic用户界面编译器 369
10.8.1 uic的使用方法 369
10.8.2 uic工具实例 369
10.9 RCC资源编译器 370
10.9.1 RCC简介 370
10.9.2 Qt资源系统 370
10.9.3 插件宏 375
第11章 Qtopia Core与嵌入式操作系统 376
11.1 Qtopia Core简介 376
11.2 Qtopia Core安装 376
11.3 Qtopia Core体系架构 378
11.3.1 客户端/服务器端通信 378
11.3.2 鼠标操作层 379
11.3.3 字符输入层 379
11.3.4 实现图形层 379
11.3.5 在屏幕上绘画 380
11.4 Qtopia Core显示管理 380
11.4.1 使显示驱动可用 381
11.4.2 指定显示驱动 381
11.5 Qtopia core字体 382
11.5.1 选项 382
11.5.2 字体目录文件 382
11.6 VNC协议与Qtopia Core 383
11.7 Qtopia Core帧缓冲 383
11.7.1 测试显示帧缓冲 383
11.7.2 使用帧缓冲来运行应用程序 384
11.8 原子操作 384
11.9 系统移植 385
11.9.1 交叉编译Qtopia Core程序 385
11.9.2 裁剪Qtopia库 387
11.9.3 Qtopia Core优化方法 387
11.9.4 移植Qt程序到Qtopia 389
11.9.5 移植Qtopia Core到其他的操作系统 389
11.9.6 设计Qtopia Core应用程序 390
11.10 Qtopia Core与客户端通信 391
11.11 Qtopia Core窗口装饰 391
11.12 字体引擎信息与插件 392
11.13 QWSServer服务器端 393
11.13.1 客户端管理 393
11.13.2 鼠标管理 393
11.13.3 键盘管理 394
11.13.4 显示管理 394
11.13.5 输入法操作 394
11.14 Qtopia与OpenGL 394
11.15 QtOpenGL模块 396
11.15.1 QGLWidget类参考 397
11.15.2 OpenGL绘画执行部件 398
11.16 实例:鼠标校准程序 400
11.17 实例:加速图形驱动 404
11.18 实例:在嵌入式系统中使用OpenGL 412
11.19 全局Qt声明 421
11.19.1 函数 421
11.19.2 宏 422
11.20 电话应用程序接口(API) 422
11.21 创建一个图片的视图程序 423
11.21.1 初始化安装 423
11.21.2 viewer.cpp文件定义 424
11.21.3 文件:listscreen.cpp 424
11.21.4 创建一个List Screen 425
11.21.5 安装一个模型 425
11.21.6 装载UI用户图形界面 426
11.21.7 为List Screen提供动作 426
11.21.8 使用信号与槽的方法打开一个文件 427
11.22 Qtopia Core对蓝牙的支持 427
11.22.1 介绍 427
11.22.2 硬件的需求 428
11.22.3 软件的需求 428
11.22.4 Qtopia的配置 428
11.23 QFrame框架类 428
11.24 Qtopia类功能划分 429
11.25 什么是GDB 431
11.26 调试Qtopia应用程序 431
11.27 关于Qtopia综合指导 433
11.27.1 Linux内核需求 433
11.27.2 最小化配置 433
11.27.3 Qtopia所依赖的添加选项 433
11.27.4 有用的调试选项 435
11.27.5 Qtopia更新文件系统 435
11.27.6 文件系统分区 436
11.27.7 建立Qtopia系统 437
11.27.8 Qtopia Core功能系统 439
11.27.9 鼠标与输入插件 440