新書推薦:
《
唐宋绘画史 全彩插图版
》
售價:HK$
98.6
《
海洋、岛屿和革命:当南方遭遇帝国(文明的另一种声音)
》
售價:HK$
106.4
《
铝合金先进成型技术
》
售價:HK$
266.6
《
《全面与进步跨太平洋伙伴关系协定》国有企业条款研究
》
售價:HK$
98.6
《
银行业架构网络BIAN(全球数字化时代金融服务业框架)(数字化转型与创新管理丛书)
》
售價:HK$
98.6
《
金托邦:江湖中的沉重正义
》
售價:HK$
60.5
《
易经今解:释疑·解惑·见微
》
售價:HK$
88.5
《
东欧史(全二册)-“中间地带”的困境
》
售價:HK$
221.8
|
編輯推薦: |
(1)兼顾Qt 5、PyQt 5。既有C语言的Qt 5知识,又有Python语言的PyQt 5的知识。通过学习两种编程语言的案例,可以更好地满足实际研发工作对编程技能的需求。
(2)真正实用。重点关注软件设计及实战技能,而非罗列一堆控件接口说明,比如:在开发大型项目时pri文件的设计与使用、配置文件的开发方法、类对象的二进制文件的序列化等都属于实用的软件研发技术案例。
(3)系统性组织案例。内容组织上掌握循序渐进原则,前面的案例为后面的案例打基础,提倡的理念是传授跨平台界面开发中用到的系统性解决方案。
(4)拒绝从零开始。配套程序代码含有改动前的基础代码和改动后的最终代码。通过利用Winmerge等对比软件,对比改动前、改动后的代码,查看改动的具体内容,便于加深对案例的理解。
|
內容簡介: |
《Qt 5PyQt 5实战指南手把手教你掌握100个精彩案例》根据跨平台软件研发工作中对Qt技术的需求,按照循序渐进的原则逐步介绍Qt的各种实用技术。本书分为3部分: 第1部分第1~14章讲述C版的Qt知识,着重介绍Qt的安装配置以及开发环境搭建、Qt项目文件的配置与使用、Qt常用类与常用控件的应用、使用Qt Designer绘制窗体与控件、库的开发与使用、插件开发技术、Qt的MVC机制及应用、SDI与MDI类应用开发技术、Qt多线程应用开发及并发框架、Qt网络应用程序开发技术; 第2部分第15~22章讲述PyQt版的开发知识,内容同*部分大体一致,用Python语言实现并根据Python语言特点省去了部分内容; 第3部分第23、24章分别以C 语言、Python语言的实战项目为例,讲解Qt技术的综合应用。全书提供了100个应用案例,除第1、23、24章外,每章后均附有配套练习。 《Qt 5PyQt 5实战指南手把手教你掌握100个精彩案例》适合作为CPython跨平台软件研发工作人员的参考资料,也可作为高等院校计算机、软件工程等相关专业高年级本科生、研究生的参考教材。
|
關於作者: |
白振勇 2000年毕业于山东工业大学,20年来一直从事跨平台监控系统的设计、研发工作;曾因iES-DMS1000 Extreme配电自动化主站系统荣获山东省科技进步二等奖,获得3项国家发明专利;带领团队利用Qt 5开发的图形平台已成为公司主营产品的核心支撑组件。
|
目錄:
|
第1章 准备工作
1.1 推荐的开发环境
1.2 安装Visual Studio 2017
1.3 安装Python
1.4 安装LLVM
1.5 用编译的方式安装Qt 5.1 1.1
1.6 用安装包安装Qt 5.1 1.1
1.7 在Linux上编译代码出错时的处理
1.8 配套源代码
第2章 pro与pri
2.1 案例1通过一个简单的EXE来介绍pro的基本配置
2.2 案例2整理一下目录吧
2.3 案例3加点料增加一张图片
2.4 知识点pro文件常用配置
2.5 知识点pri文件有什么用
2.6 知识点一劳永逸,引入pri体系
2.7 案例4还是不知道pri怎么用?来练练手吧
2.8 配套练习
第3章 多国语言国际化
3.1 案例5怎样实现国际化
3.2 知识点几种常见的国际化编程场景
3.3 知识点中英文翻译失败如何处理
3.4 配套练习
第4章 打基础
4.1 案例6开发一个DLL
4.2 知识点使用命名空间
4.3 案例7QString的6个实用案例
4.4 案例8用qDebug输出信息
4.5 案例9使用QVector处理数组
4.6 案例10使用QList处理链表
4.7 案例11使用QMap建立映射
4.8 案例12万能的QVariant
4.9 案例13使用QMessagebox弹出各种等级的提示信息
4.10 案例14使用QInputDialog获取多种类型的用户输入
4.11 知识点开发自己的公共类库
4.12 案例15普通文本文件读写
4.13 案例16XML格式的配置文件
4.14 知识点INI格式的配置文件
4.15 案例17把类对象序列化到二进制文件
4.16 案例18从二进制文件反序列化类对象
4.17 案例19类的XML格式序列化
4.18 知识点类的二进制格式序列化向后兼容
4.19 案例20使用流方式读写XML
4.20 知识点使用单体模式实现全局配置
4.21 案例21读取GB 13000编码的身份证信息
4.22 配套练习
第5章 对话框
5.1 知识点Qt Designer的使用
5.2 知识点在Designer中进行界面布局
5.3 案例22对话框走起
5.4 案例23三种编程方式实现信号槽开发
5.5 案例24自定义signal与信号转发
5.6 案例25disconnect的用途
5.7 知识点消息阻塞防止额外触发槽函数
5.8 案例26信号槽只能用在对话框里吗
5.9 案例27对象之间还能怎么传递消息
5.10 知识点编程实现控件嵌套布局
5.11 知识点样式
5.12 案例28使用QStackedLayout实现向导界面
5.13 案例29定时器1
5.14 案例30定时器2
5.15 配套练习
第6章 常用控件
6.1 案例31使用QLabel显示文本或图片
6.2 案例32使用QLineEdit获取多种输入
6.3 案例33使用QComboBox获取用户输入
6.4 案例34使用QListWidget展示数据列表
6.5 案例35使用QSlider控制进度
6.6 配套练习
第7章 用QPainter实现自定义绘制
7.1 知识点怎样进行自定义绘制
7.2 案例36萌新机器人
7.3 案例37机器人的新装
7.4 配套练习
第8章 模型视图代理
8.1 知识点Qt的MVC简介
8.2 知识点使用QStandardItemModel构建树模型
8.3 案例38使用代理实现属性窗
8.4 案例39带子属性的属性窗
8.5 配套练习
第9章 开发SDI应用
9.1 案例40开发一个SDI应用
9.2 案例41使用自定义视图
9.3 案例42添加主菜单
9.4 案例43常规工具条
9.5 知识点在状态栏上显示鼠标坐标
9.6 知识点使用QSplashScreen为程序添加启动画面
9.7 知识点工具条反显
9.8 案例44打开文件对话框
9.9 案例45浮动窗里的列表框
9.10 案例46拖放
9.11 案例47使用树视图做个工具箱
9.12 案例48使用事项窗展示事项或日志
9.13 案例49剪切、复制、粘贴
9.14 案例50上下文菜单
9.15 案例51利用属性机制实现动画弹出菜单
9.16 知识点main函数一般都写什么
9.17 配套练习
第10章 开发MDI应用
10.1 案例52MDI采用同一类型的View
10.2 知识点MDI采用不同类型的View
10.3 配套练习
第11章 重写Qt事件
11.1 知识点QWidget事件简介
11.2 案例53通过重写鼠标事件实现图元移动
11.3 案例54通过重写键盘事件实现图元移动
11.4 知识点无法切换到中文输入时该怎么办
11.5 配套练习
第12章 开发插件
12.1 知识点什么是插件,插件用来干什么
12.2 案例55怎样开发插件
12.3 配套练习
第13章 开发多线程应用
13.1 案例56多线程和互斥锁
13.2 知识点多线程应用中如何与主界面通信
13.3 案例57使用QtConcurrent处理并发Map模式
13.4 案例58使用QtConcurrent处理并发MapReduce模式
13.5 配套练习
第14章 开发网络应用
14.1 案例59基于Qt的TCPIP编程
14.2 案例60TCPIP多客户端编程
14.3 配套练习
第15章 PyQt 5基础
15.1 知识点PyQt 5简介
15.2 知识点搭建PyQt 5开发环境
15.3 案例61编写第一个PyQt 5程序
15.4 案例62给应用加上图片
15.5 案例63信号槽初探窗口A调用窗口B
15.6 案例64编写代码实现控件布局
15.7 案例65在窗体A中嵌入自定义控件B
15.8 案例66使用QLabel显示GIF动画
15.9 案例67使用QLineEdit获取多种输入
15.10 案例68使用QComboBox获取用户输入
15.11 案例69使用QListWidget展示并操作列表
15.12 案例70使用QSlider控制进度
15.13 案例71使用QMessageBox弹出提示信息
15.14 案例72使用QInputDialog获取用户输入
15.15 案例73使用QFileDialog获取用户选择的文件名
15.16 知识点把程序最小化到系统托盘
15.17 配套练习
第16章 PyQt 5进程内通信
16.1 知识点PyQt 5中的信号槽
16.2 案例74使用自定义信号
16.3 案例75带参数的自定义信号
16.4 知识点信号比槽的参数少该怎么办
16.5 案例76使用QTimer实现定时器
16.6 知识点使用timerEvent实现定时器
16.7 案例77使用QStackedLayout实现向导界面
16.8 配套练习
第17章 PyQt 5实现自定义绘制
17.1 知识点怎样进行自定义绘制
17.2 案例78萌新机器人
17.3 案例79机器人的新装
17.4 配套练习
第18章 PyQt 5中的模型视图代理
18.1 知识点使用QStandardItemModel构建树模型
18.2 案例80最简单的属性窗
18.3 案例81使用代理实现属性窗
18.4 案例82自定义属性窗
18.5 案例83带子属性的属性窗
18.6 配套练习
第19章 PyQt 5开发SDI应用
19.1 案例84开发一个SDI应用
19.2 案例85使用自定义视图
19.3 案例86添加主菜单
19.4 案例87常规工具条
19.5 案例88在状态栏上显示鼠标坐标
19.6 知识点使用QSplashScreen为程序添加启动画面
19.7 知识点工具条反显
19.8 案例89浮动窗里的列表框
19.9 案例90拖放
19.10 案例91使用树视图做个工具箱
19.11 案例92使用事项窗展示事项或日志
19.12 案例93剪切、复制、粘贴
19.13 案例94上下文菜单
19.14 配套练习
第20章 PyQt 5开发MDI应用
20.1 案例95MDI采用同一类型的View
20.2 知识点MDI采用不同类型的View
20.3 配套练习
第21章 PyQt 5事件
21.1 案例96通过重写鼠标事件实现图元移动
21.2 案例97通过重写键盘事件实现图元移动
21.3 配套练习
第22章 PyQt 5开发多线程应用
22.1 案例98多线程和互斥锁
22.2 知识点多线程应用中如何刷新主界面
22.3 配套练习
第23章 项目实战敏捷看板C版
23.1 知识点项目实战准备访问SQLite数据库
23.2 知识点项目实战准备使用QCustomPlot绘制曲线
23.3 案例99项目实战敏捷看板
第24章 项目实战敏捷看板PyQt版
24.1 知识点项目实战准备访问SQLite数据库
24.2 知识点项目实战准备用Matplotlib绘制曲线
24.3 案例100项目实战敏捷看板
附录APyQt 5常用类所在模块
参考文献
|
內容試閱:
|
一、 为什么要写本书
随着硬件及物联网技术的飞速发展,PC、平板、手机、智能硬件等越来越多地出现在人们的日常生活中,而为这些硬件设备开发软件已经成为跨平台软件研发工作中非常迫切的需求。Qt作为一款杰出的第三方C跨平台类库,已经成为跨平台软件研发工作中一个重要支撑。Qt诞生于20世纪90年代初,目前已发布5.15版(截至本书出版时),Qt可运行于WindowsLinuxUnix等操作系统上。Qt既可以用来开发跨平台界面类应用,也可以用来开发跨平台服务器应用。虽然Qt自带非常丰富的Demo以及非常棒的帮助文档,但是对于初学者来说,一本实用的开发指导书还是首选。目前市面上关于跨平台软件研发的书籍少之又少,更别说用来指导一线研发工作的实战指南了,因此本书应运而生。
本书紧扣跨平台软件开发工作的实际需求,采用系统的、循序渐进的方式,从一个个实用案例出发,讲述利用Qt进行开发的各种实用技能; 此外,本书还分享了大量的案例程序代码,有助于读者加深对各章节内容的理解。
二、 内容特色
与同类书籍相比,本书有如下特色。
(1) 兼顾Qt 5、PyQt 5。
本书既有C语言的Qt 5知识,又有Python语言的PyQt 5知识。本书设计了100个应用案例,其中C版的Qt 5案例61个,PyQt 5版的案例39个。通过学习两种编程语言的案例,可以更好地满足实际研发工作对编程技能的需求。
(2) 真正实用。
重点关注软件设计及实战技能,而非罗列一堆控件接口说明。主张将学到的技巧应用到日常的软件开发工作中,比如: 在开发大型项目时pri文件的设计与使用、配置文件的开发方法、类对象的二进制文件的序列化、向前兼容的二进制文件格式设计、带子属性的属性窗等都属于实用的软件研发技术案例。
(3) 系统性组织案例。
有利于系统地学习开发技能。本书在内容组织上掌握循序渐进原则,前面的案例为后面的案例打基础。本书提倡的理念是传授跨平台界面开发中用到的系统性解决方案,只要掌握了方法,就有能力自行查阅资料解决问题,毕竟再全面的图书也不可能把Qt的所有知识都包含进来。
(4) 配套练习,加深理解。
除第1、23、24章外,每章后均附有配套练习,本书提供超过140道配套练习题(见配套资源)。通过针对性练习,可以加深对知识的理解与掌握,更快投入真正的研发工作。
(5) 拒绝从零开始。
配套的程序代码中含有改动前的基础代码和改动后的最终代码。在阅读时,读者可以在改动前的基础代码上对照案例讲解的内容直接进行修改,这样可以有效提高学习效率、方便练手。通过利用Winmerge等对比软件,也可以对比改动前、改动后的代码,查看改动的具体内容,便于加深对案例的理解。在案例开头一般都配有运行效果图。
(6) 配套资源,超值服务。
本书提供以下配套资源:
配套资源
●程序代码、补充习题、辅助资料等,请扫描此处二维码或到清华大学出版社本书页面下载。
●微课视频(时长共2000分钟),请扫描各章节对应位置二维码观看,读者可跟随视频中演示的步骤进行学习。
●想获取更多跨平台开发知识,请关注微信公众号软件特攻队(详见配套资源)。
注意: 请先刮开封四的刮刮卡,扫描刮开的二维码进行注册,之后再扫描书中的二维码,获取相关资料。
三、 阅读建议
●先下载本书附带的源代码(见配套资源中),阅读本书时请查阅对应源代码进行学习。
●本书的源代码分为两部分: 改动前的代码在src.baseline目录中,各案例以改动前的代码为基础进行修改; 改动后的最终代码在src中。
●第1章为环境搭建及准备工作,C版的内容在第2~14章,PyQt 5版的内容在第15~22章,第23、24章分别为C版、PyQt 5版的实战案例。请根据需求进行阅读。
●在学习C版的内容时,请先阅读第1~7章。
●在文中进行描述时,有的接口只写了接口名称,但是并未写明详细的参数列表,请根据上下文理解。
●因篇幅所限,文中部分代码做了省略,请查看附带的源代码。为了节省篇幅,PyQt 5案例代码中删除了函数之间的空行。
●附录A列出了PyQt 5常用类所在模块,电子文档见配套资源,便于开发时查询。
四、 读者对象
●有一定CPython基础的软件爱好者;
●C跨平台软件研发人员或者PyQt 5研发人员;
●计算机科学与技术相关专业并且有C、Python基础的本科生、研究生。
五、 致谢
感谢清华大学出版社的刘星编辑在本书的编写、校对过程中所付出的辛勤劳动,尤其是对我的耐心指导与答疑。感谢广大网友的信任、支持与鼓励,是你们给我带来了写作动力。
感谢我的父母、妻子一直以来对我的关心、照顾与支持。感谢我的女儿带给我的快乐与惊喜。
限于编者的水平和经验,加之时间比较仓促,疏漏或者错误之处在所难免,敬请读者批评指正。有兴趣的朋友可发送邮件至workemail6@163com,与本书策划编辑进行交流。
编者
2020年7月于济南
|
|