新書推薦:
《
构建未来教育图景:实践以学生为中心的育人模式
》
售價:NT$
398.0
《
中考热点作家孙道荣2024年散文精选集三册
》
售價:NT$
581.0
《
全球城市案例研究2023:基于网络的合作与竞争国际经验借鉴
》
售價:NT$
908.0
《
引爆:炸药、硝酸盐和现代世界的形成
》
售價:NT$
388.0
《
人类星球:我们如何创造了人类世(企鹅·鹈鹕丛书013)
》
售價:NT$
418.0
《
伏候圣裁:中国古代的君主与政治
》
售價:NT$
449.0
《
艺术图像学研究(第一辑)
》
售價:NT$
857.0
《
摆脱强迫的人生(修订版)
》
售價:NT$
403.0
|
編輯推薦: |
本书所有程序的源代码均可通过QQ 浏览器扫描二维码免费下载。读者也可以通过以下网址下载全部资料:http:www.buaapress.com.cnuploaddownload20170324qt.rar。配套资料下载或与本书相关的其他问题,请咨询北京航空航天大学出版社理工图书分社,电话01082317036。
|
內容簡介: |
本书重点介绍了基于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
目 录 3
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串 157
6.4.3 XML文件操作 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 InstallShield打包 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
|
內容試閱:
|
作为可跨平台开发的Qt,事实上是全体C、C程序员的福音。尤其是近几年Qt不断地推出跟踪市场前沿的新功能和新版本,更是体现了这门技术的可持续发展能力,在已经聚集大量拥趸者的基础上,又有大批的程序员加入其中。目前,基于Qt平台的工程应用与开发已经成为当前相关领域工程研究和技术开发的重要平台,成为技术热点。
随着当前桌面系统、嵌入式平台,尤其是移动平台功能和版本的不断变化,使得Qt不断调整系统结构,更新换代,导致使用Qt开发符合当代工程应用与技术开发标准或潮流的相关文档严重不足。从网络中搜索到的代码和相关教材多以旧版本为主,大部分体系结构、功能和代码都不能在Qt新平台中执行;即使有少许针对新平台和功能的书,也不能够满足国内相关领域的本科生、研究生、工程师及从业人员的需求。
此外,Qt单纯地使用C语言进行程序开发已不再满足当代应用程序的需求。当代应用程序无不以网络化、分布式、交互性为特色,如果是单纯的C或C程序,而不与Web网站、JSP代码、Java代码或PHP代码进行沟通,则是没有发展前途的。为此,本书重点介绍了基于C的Qt应用与基于Java语言的Web应用,其通过第三方远程通信协议进行跨语言级的函数调用,当属Qt相关书籍领域的创新性尝试,目前国内相关书籍尚未见到。
本书重点介绍了基于Qt开发体系结构中面向底层和顶层程序设计的项目研究结果,以一套集成软件层、硬件层、网络层、跨语言层和虚拟服务与虚拟设备层等完整应用程序的开发为例,对Qt平台的相关原理、方法与技巧进行说明。在底层方面,主要研究了Qt在桌面系统底层驱动程序开发的模块结构与特点,并以我国二代身份证读卡器及SIM 卡读写卡器为对象,给出系统设计、代码与实例。在顶层方面,重点研究了当前跨平台、跨语、跨代码的远程程序通信协议,重点讲解了基于C的Qt应用与基于Java语言的Web应用,其通过第三方远程通信协议进行跨语言级的函数调用,尤其重点介绍了允许二进制通信的Hessian远程通信协议,并给出了相应的解析实例。此外,本书还介绍了Qt主要的高级功能模块,包括界面设计、Web网站文件的上传与下载、应用实例检测、外部动态链接库调用、系统托盘管理、网络连接状态的查看、外部进程的执行、进程间通过Windows消息通信、INI与JSON 格式文件的读写、程序打包与发布等内容。
本书配套资料中有大约200MB的源代码,分别针对书中提及的程序实例,这些代码可由读者扫描书中二维码下载获取,但这里有两个情况需要说明:一是时间比较紧,加上Qt编译环境多变,部分代码需要读者根据自己的计算机环境适当地修改调试参数以完成编译;二是本书提供的第三方动态链接库、工具程序等的版权均归属其所有人所有,本书提供这些资源仅用于教学目的,读者可以在自行编写的实验程序中使用这些资源,但如果用于商业用途,请向这些资源的版权归属人取得许可,本书作者不承担相关责任。
感谢项目组所有成员,在他们的帮助和配合下,项目才得以顺利地完成,才有本书的出现;感谢北京航空航天大学出版社的甄真编辑,没有她的积极沟通和争取,本书无法立项成稿;感谢国家自然科学基金面上项目61373159、辽宁省高等学校优秀人才支持计划LJQ2015095、辽宁省自然科学基金项目201003676、沈阳市重点实验室项目、沈阳市科技应用基础研究计划项目F13316122等资金的资助。
Qt平台博大精深,内容丰富多彩,许多问题的解决方案尚无公论;加之作者水平有限,书中难免出现不妥之处,恳请广大读者批评指正。
作 者
2017年1月
|
|