第1章 引言 1
1.1 Qt框架的特色 1
1.1.1 跨平台 1
1.1.2 艺术级图形界面设计 3
1.1.3 抽象化核心模块设计 3
1.1.4 环境准备 3
1.2 本书的特色 5
1.2.1 完整准确的参考 6
1.2.2 系统深入的说明 6
1.2.3 实例演示:远程传输与控制系统 7
1.3 远程传输与控制系统的结构 7
1.3.1 总体结构 7
1.3.2 软件层 7
1.3.3 硬件层 9
1.3.4 网络层 9
1.3.5 跨语言通信层 9
1.3.6 数据层 10
1.3.7 远端控制层 10
1.3.8 打包与发布 10
第2章 软件层系统功能模块 11
2.1 Qt项目 11
2.1.1 Qt工程 11
2.1.2 PRO文件 12
2.1.3 影子编译 14
2.1.4 版本控制 14
2.2 系统程序窗口 14
2.2.1 对话框开发 14
2.2.2 资源管理 16
2.2.2.1 图片与图标资源 16
2.2.2.2 css样式表 17
2.3 登录系统 18
2.3.1 按钮响应 18
2.3.2 读/写组件值 19
2.4 托盘管理 19
2.4.1 Windows系统托盘 19
2.4.2 事件劫持 20
2.4.3 菜单管理 21
2.4.3.1 鼠标右键动作 21
2.4.3.2 鼠标左键动作 23
2.5 单实例管理 24
2.5.1 进程与实例 24
2.5.2 单实例管理概述 25
2.6 再论对话框 26
2.6.1 系统对话框 26
2.6.2 自定义对话框 27
第3章 Web网络服务模块 29
3.1 Qt网络模块 29
3.1.1 网络模块类 29
3.1.2 QNetwork AccessManager类与QNetworkReply类 29
3.2 下载升级文件 30
3.2.1 信号与槽函数 30
3.2.2 功能模块与类 31
3.3 程序自动升级 33
3.3.1 强制升级机制 33
3.3.2 系统实现 34
3.3.2.1 读取INI文件中的版本信息 34
3.3.2.2 设计本地信息INI文件 34
3.3.2.3 读写My Documents目录下的INI文件 35
3.3.2.4 逻辑判断 36
3.3.2.5 开始下载 37
3.3.2.6 启动进程外EXE文件完成升级 39
第4章 通用跨语言层远程网络通信 40
4.1 远程调用与通信 40
4.1.1 进程间通信 40
4.1.2 网络间通信 41
4.1.2.1 通信协议 41
4.1.2.2 通信程序与语言 42
4.1.3 跨语言通信 48
4.1.3.1 可执行程序层跨语言通信 48
4.1.3.2 链接库层跨语言通信 49
4.1.3.3 代码层跨语言通信 53
4.2 代码层跨语言通信协议 53
4.2.1 Java RMI 53
4.2.2 Web Service 54
4.2.2.1 Web Service功能实现 54
4.2.2.2 Web Service功能描述 55
4.2.2.3 Web Service远程调用 55
4.2.3 Hessian协议 58
4.2.3.1 Hessian协议介绍 58
4.2.3.2 代码实现 59
4.3 Qt中的Hessian协议 60
4.3.1 Hessian的C语言实现 60
4.3.1.1 官方实现 60
4.3.1.2 第三方实现 61
4.3.1.3 Qt实现 62
4.3.2 qhessian的远程过程调用 63
4.3.2.1 qhessian包的结构 63
4.3.2.2 通信原理与代码实现 66
4.4 远程传输与控制系统实例解析 69
4.4.1 总体需求分析 69
4.4.2 服务器端业务需求与功能模块 70
4.4.2.1 功能模块与接口 70
4.4.2.2 数据层支持 71
4.4.3 客户端业务需求与功能模块 71
4.4.3.1 客户端引入qhessian模块 71
4.4.3.2 客户端实现 73
4.4.3.3 主程序接口调用 75
4.4.4 编译与调试 76
4.4.4.1 配置文件 76
4.4.4.2 服务器与客户端 76
第5章 硬件模块与底层驱动 78
5.1 Qt引入硬件层 78
5.1.1 动态链接库 79
5.1.2 Qt程序静态加载动态链接库 79
5.1.2.1 Linux平台 80
5.1.2.2 Windows平台 80
5.1.2.3 代码实现 81
5.1.3 Qt程序动态加载动态链接库 85
5.1.4 Qt程序加载非完整动态链接库 86
5.2 二代身份证读卡器 90
5.2.1 功能描述 90
5.2.1.1 二代身份证 90
5.2.1.2 二代身份证读卡器 91
5.2.2 驱动接口 92
5.2.2.1 公安部标准接口 92
5.2.2.2 C语言实现 93
5.2.3 Qt调用 96
5.2.3.1 读取身份证信息 96
5.2.3.2 身份证信息的原始格式 101
5.2.3.3 身份证照片与指纹信息 104
5.2.3.4 Hessian上传身份证信息 105
5.2.4 兼容性 113
5.3 SIM卡读/写卡器 114
5.3.1 SIM卡 114
5.3.2 SIM卡开发 115
5.3.2.1 ISO 7815 116
5.3.2.2 GSM 11.11 117
5.3.2.3 GSM 11.14 117
5.3.2.4 APDU指令集 118
5.3.2.5 Winscard封装 122
5.3.3 实际系统开发 124
5.3.3.1 联通SI M卡 124
5.3.3.2 移动SIM卡 126
5.3.4 Qt实现SIM卡的读/写操作 128
5.3.4.1 功能需求与程序架构 128
5.3.4.2 读/写SI M卡 128
5.4 其他硬件设备 136
5.4.1 指纹识别设备 136
5.4.2 短信业务模块设备 136
第6章 Qt关键模块与高级功能 137
6.1 Qt最优语言特色:再论信号与槽 137
6.1.1 信号与槽原理 137
6.1.1.1 Windows传统消息机制 137
6.1.1.2 Qt机制 139
6.1.2 示例程序 140
6.1.2.1 定义信号与槽 140
6.1.2.2 创建信号与槽函数 141
6.1.2.3 连接并使用信号与槽 142
6.2 Qt事件处理 143
6.2.1 事件处理机制 143
6.2.2 高级事件响应 146
6.2.2.1 自主推动事件循环 146
6.2.2.2 与Windows程序消息通信 146
6.3 系统关键功能 148
6.3.1 查看网络是否连接 148
6.3.2 识别操作系统位数 150
6.3.3 查看系统目录 150
6.3.3.1 获取Windows系统目录 150
6.3.3.2 获取应用程序所在目录 151
6.3.4 防止程序自动退出 152
6.3.5 执行外部进程 152
6.3.5.1 启动第三方进程 152
6.3.5.2 停止第三方进程 153
6.3.5.3 后台方式启动第三方进程 154
6.3.5.4 指定输出方式启动第三方进程 154
6.3.5.5 启动第三方BAT程序 154
6.4 服务模块 155
6.4.1 INI文件操作 155
6.4.2 JSON文件操作 156
6.4.2.1 简单格式的JSON串 156
6.4.2.2 复杂格式的JSON串 157
6.4.3 XMI文件操作 158
6.4.4 二进制数据处理 160
6.4.4.1 base64码 160
6.4.4.2 文本化处理 160
6.4.5 Qt日志 161
第7章 程序打包与发布 163
7.1 发布Qt程序 163
7.1.1 Release与Debug编译 163
7.1.2 动态链接库依赖 163
7.2 打包程序 165
7.2.1 Install Shield打包 166
7.2.1.1 创建基本的安装包 166
7.2.1.2 卸载功能 166
7.2.1.3 安装第三方包与安装后重启 166
7.2.2 inno打包 168
7.2.2.1 基本功能 168
7.2.2.2 高级功能 170
参考文献 176