内容简介
Qt平台体系与应用-Qt5.5+核心方法、技巧与案例
本书重点介绍了基于Qt开发体系结构中面向底层和顶层程序设计的项目研究结果,以一套集成软件层、硬件层、网络层、跨语言层和虚拟服务与虚拟设备层等完整应用程序的开发为例,对Qt平台的相关原理、方法与技巧进行说明。在底层方面,主要研究了Qt在桌面系统底层驱动程序开发的模块结构与特点,并以我国二代身份证读卡器及SIM卡读/写卡器为对象,给出系统设计、代码与实例。在顶层方面,重点研究了当前跨平台、跨语言、跨代码的远程程序通信协议,重点讲解了基于C++的Qt应用与基于Java语言的Web应用,其通过第三方远程通信协议进行跨语言级的函数调用,尤其重点介绍了允许二进制通信的Hessian远程通信协议,并给出了相应的解析实例。此外本书还介绍了Qt主要的高级功能模块,包括界面设计、Web网站文件的上传与下载、应用实例检测、外部动态链接库调用、系统托盘管理、网络连接状态的查看、外部进程的执行、进程间通过Windows消息通信、INI与JSON格式文件的读/写、程序打包与发布等课题。
本书所有代码均基于Qt5.5.1平台,可供该领域的程序设计人员、工程开发与研究人员参考,也可供自然科学和工程技术领域中的相关人员参考。
目录
第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 QNetworkAccessManager类与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 读写MyDocuments目录下的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 JavaRMI ………………………………………………………………………… 53
2 Qt平台体系与应用———Qt5.5+核心方法、技巧与案例
4.2.2 WebService ……………………………………………………………………… 54
4.2.2.1 WebService功能实现………………………………………………………… 54
4.2.2.2 WebService功能描述………………………………………………………… 55
4.2.2.3 WebService远程调用………………………………………………………… 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 ISO7816 …………………………………………………………………… 116
5.3.2.2 GSM11.11 ………………………………………………………………… 117
5.3.2.3 GSM11.14 ………………………………………………………………… 117
5.3.2.4 APDU 指令集……………………………………………………………… 118
5.3.2.5 Winscard封装……………………………………………………………… 122
5.3.3 实际系统开发…………………………………………………………………… 124
5.3.3.1 联通SIM 卡………………………………………………………………… 124
5.3.3.2 移动SIM 卡………………………………………………………………… 126
5.3.4 Qt实现SIM 卡的读/写操作…………………………………………………… 128
5.3.4.1 功能需求与程序架构………………………………………………………… 128
5.3.4.2 读/写SIM 卡………………………………………………………………… 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
4 Qt平台体系与应用———Qt5.5+核心方法、技巧与案例
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串……………………………………………
Qt平台体系与应用-Qt5.5+核心方法、技巧与案例 epub pdf mobi txt 电子书 下载 2024
Qt平台体系与应用-Qt5.5+核心方法、技巧与案例 下载 epub mobi pdf txt 电子书 2024