我写的第二本书《Python Qt GUI与数据可视化编程》终于上架销售了。

去年为第一本书《Qt 5.9 C++开发指南》写的介绍文章称其为倾心倾力之作。本书与第一本书是有些关联的,一些内容框架和示例来自于第一本书,但是本书不是简单地将C++的示例改写为Python的示例,在写这本书时发现第一本书中的一些不足,做了很多的改进。我们在写论文或指导学生写论文时都知道一个基本的道理:好的论文总是一遍一遍改出来的。这是我写的第二本书,有了更多的写书经验,在内容和结构上更加完善,力求完美,所以称其为尽善尽美之作。

怎样才能算得上是尽善尽美之作呢?本人在大学里从事教学工作,看多了学生的报告和毕业论文,翻一遍基本上就能看出来哪篇是好的论文,哪篇是差的论文。好的论文结构清晰,内容充实而条理清楚,该具体的地方能详细介绍,该粗略的地方绝不多占篇幅,格式美观,图文并茂,让人看了就能看明白,看着就舒服。而差的论文则相反,论文结构不清,逻辑混乱,缺少真材实料,内容注水严重,格式也差。

本书就是按照我心目中好论文的标准来写的,在章节内容选取、内容顺序安排、示例设计、原理和程序讲解各方面力求完美。总结一下,本书有以下几个特点。

1. 主题明确,内容选择紧扣主题

本书的主题是使用PyQt5进行GUI应用程序设计,以及嵌入到GUI界面的数据可视化编程。这个主题是非常实用的,因为我们经常需要将自己编写的Python程序封装成一个GUI程序,以便进行展示和交互式的操作。而Python自带的tkinter虽然可以做GUI界面,但是功能比较差,Matplotlib是常用的数据可视化工具,但是一般介绍Matplotlib的书只介绍其脚本化的编程方法,将其当做类似于MATLAB中的plot绘图工具在使用。

PyQt5是Qt5 C++类库的Python绑定,使用PyQt5可以在Python中开发专业级的GUI程序。我们已经出版了一本《Qt 5.9 C++开发指南》,对Qt C++类库的使用比较熟悉,所以写这个主题也是合适的。本书围绕这个主题设置章节内容,首先在内容选择上追求完美。

(1)本书没有用一章专门介绍Python编程基础。研究GUI和数据可视化编程的读者应该已有一定的Python编程基础,所以本书没有必要再介绍Python编程基础。

(2)有些功能模块是PyQt5和Python都有的,就只选择在Python中设计GUI应用程序用得上的PyQt5模块。例如,Python虽然有自带的数据库、多媒体、文件读写功能模块,但是功能不如PyQt5的相应模块,或不易与PyQt5的GUI程序的窗口界面结合使用,本书就介绍PyQt5的数据库、多媒体、文件读写功能模块。而Python自带的多线程编程功能已经比较全,且不涉及用户界面,本书就不介绍PyQt5的多线程编程功能。Python有很多功能强大的第三方网络功能模块,也就没有必要介绍PyQt5的网络编程功能了。

(3)在数据可视化部分,本书介绍了PyQtChart和PyQtDataVisualization的使用,这两个包实际上是Qt C++类库的一部分,熟悉Qt C++类库的读者可以很快上手使用。同时又考虑到Matplotlib使用的广泛性,增加了Matplotlib嵌入到GUI界面上实现数据可视化编程的内容。

2. 章节内容安排逻辑清晰

本书的内容分为三大部分,各部分和章节分布如图。

第一部分是PyQt5开发基础,包括第1章和第2章。

第1章介绍Python、Qt、PyQt5的特点和安装方法,在Windows 中建立开发环境。

第2章介绍使用PyQt5开发GUI应用程序的基本框架原理,包括GUI应用程序的基本结构,可视化设计UI窗体时开发GUI程序的流程和框架,信号与槽的使用方法,资源文件的使用等。掌握了第2章的内容就掌握了PyQt5开发GUI应用程序的框架性原理,再根据自己的编程需要选择性地学习第二和第三部分的章节。

第二部分是GUI应用程序设计,从第3章至第11章。

这一部分介绍GUI应用程序设计中常用到的一些功能模块的编程使用方法,包括常用界面组件的使用,Model/View结构,事件处理,对话框和多窗口设计,数据库,绘图,文件读写和操作,多媒体,多语言界面和Qt样式表定制界面等。

第三部分介绍数据可视化设计方法,从第12章至第14章。

PyQtChart和PyQtDataVisualization是Qt C++类库相应模块的Python绑定,分别用于二维图表和三维数据可视化设计,其内容的介绍比较全面。另外由于Matplotlib在Python数据可视化中应用广泛,第14章专门介绍将Matplotlib嵌入到GUI界面中实现交互式数据可视化的设计方法,包括主要的技术点和一些常用二维图和三维图的编程使用方法。

PyQtChart、PyQtDataVisualization与Matplotlib的某些功能是重合的,但两者各有千秋,读者可根据自己的需要和熟悉的内容选择学习和使用。如果读者熟悉Qt C++类库中的二维图表和三维数据可视化模块的使用,就看第12章和第13章;如果读者熟悉Matplotlib的使用,就看第14章。

3. 内容讲解言简意赅,详略得当

技术书籍必须言简意赅,避免废话连篇,同时要结合程序或图表进行必要的讲解。在内容的讲解上要详略得当,该简略的就简略,该深入的就深入,例如:

(1)本书在第2章介绍过窗体UI的可视化设计原理、代码构建界面的原理后,在后续章节中就基本不再介绍窗体的可视化设计过程,更不会拿构建界面的代码来充页数。界面设计尽量采用可视化方法,GUI程序设计的重点应该放在类的各种接口属性和函数的使用上,放在业务逻辑功能的实现上。

(2)对于简单的界面组件的使用,本书不会花太多篇幅来逐一介绍,因为有些组件的常用功能很简单,甚至是显而易见的,例如QLabel,QPushButton等。本书第3章介绍界面组件的使用时,通常是将几个组件放在一个示例里一起介绍,除了简单介绍其常用方法外,还介绍一些高级方法的使用,例如QTreeWidget的节点关联数据的使用方法。

(3)对于某些内容本书又会深入地详细介绍。例如第14章介绍Matplotlib嵌入到GUI界面中的编程方法,本书就介绍的非常详细,而不是像某本书上只是拿一个官方示例跑一下而已。第14章介绍了Matplotlib嵌入到GUI界面中编程的基本原理,还详细介绍了Matplotlib绘图的主要元素的面向对象操作方法、交互式操作方法,还设计了一个自定义绘图组件类QmyFigureCanvas,可直接在界面可视化设计时使用,可直接应用于用户自己的程序设计。

图14-4 示例Demo14_2运行时界面。将Matplotlib的绘图功能嵌入到GUI程序中,并且对图的各个组成元素的面向对象编程操作进行了详细的介绍

4. 以完整示例讲解编程方法,提供两套示例程序

本书延续《Qt 5.9 C++开发指南》一书的风格,以大量完整示例程序为基础讲解编程原理,这些示例分散在各个章节中。本人一贯认为,没有完整示例的编程书籍就是忽悠人的。只有自己做过一遍示例程序,才可以深入地理解和掌握编程中的一些细节问题,讲解也就更加有针对性。学习编程也是一样,只是拿示例程序跑一遍、看一遍是难以完全掌握的,必须自己动手做一遍才能真正学会。

本书提供两套示例程序。一套是具有全部源码的程序,包括Qt项目、UI窗体、Python程序等,其中的Python程序可以直接运行,显示示例运行结果。

另外一套是只有UI窗体的不完整程序,包括Qt项目、UI窗体、Python程序框架,其中的Python程序文件只有基本框架,没有功能实现代码。这套程序是为了便于读者使用已经设计好的UI窗体,根据书中介绍的过程和内容,在Python程序框架里自己编写程序,逐步实现功能。这样的学习过程就具有可操作性。

以下是本书中一些示例的运行界面。

图3-10 示例Demo3_7运行时界面。使用QAction设计主窗口的菜单栏、工具栏,可视化与代码结合的界面设计方法,QPlainTextEditor文字编辑功能等

图13-11 示例Demo13_3绘制的三维曲面图。使用PyQtDataVisualization中的类绘制三维曲面图

图14-9  示例Demo14_3运行时界面。Matplotlib绘图工具栏的改造与交互式操作

后记

我们写这本书只是因为发现市面上没有这个主题的好书,觉得有必要写一本。写这本书没有什么项目支持,没有deadline要求,因而能精耕细作,仔细打磨,希望写出一本比较完美的书。现在书已正式出版,算不算得上一本好书,就留给读者和市场,还有时间来检验了。

附:三位作者简介

  • 王维波(博主),博士,中国石油大学(华东)教师,从事测控技术与仪器专业相关的教学工作,主要研究地球物理探测仪器开发、监测数据处理方法和软件开发。精通软硬件开发,已出版《Qt 5.9 C++开发指南》一书。
  • 栗宝鹃,博士,某大型单位科研人员,主要从事地球物理、水下探测、遥感等专业方向的数据处理和图像识别方面的研究工作,在日常工作中使用Qt和Python解决实际问题。
  • 张晓东,博士,中国石油大学(华东)教师,从事自动化专业相关的教学工作,研究方向主要是优化算法、最优控制和智能控制。具有丰富的算法编程经验,善于通过Qt C++和Python结合提高算法效率。

尽善尽美之作《Python Qt GUI与数据可视化编程》相关推荐

  1. 新书《Python Qt GUI与数据可视化编程》

    经过一年多写作和出版社的编辑加工,我的第二本书<Python Qt GUI与数据可视化编程>马上就正式上架了,敬请关注. 本书介绍在Python中使用PyQt5和其他模块进行GUI和数据可 ...

  2. python qt5 gui快速编程_现货正版 Python Qt GUI与数据可视化编程 pyqt5教程书籍 pyqt5快速开发与实战Qt5 GUI快速编程 计算机网络程序设计人民邮电出版社...

    热销单品 查看更多 > RMB:85.00 立即购买 RMB:63.50 立即购买 RMB:73.50 立即购买 RMB:49.50 立即购买 RMB:127.80 立即购买 RMB:66.00 ...

  3. 软件开发书籍-Python Qt GUI与数据可视化编程

    Python Qt GUI与数据可视化编程 王维波,栗宝鹃,张晓东 著 ISBN:9787115514165 包装:平装 开本:16开 正文语种:中文 出版社:人民邮电出版社 出版时间:2019-09 ...

  4. python qt gui与数据可视化编程 kindle_Kindle Python教程 电子书 – Python数据可视化编程实战 PDF...

    简介 : < 全书共8章,分别介绍了准备工作环境.了解数据.绘制并定制化图表.学习更多图表和定制化.创建3D可视化图表.用图像和地图绘制图表.使用正确的图表理解数据以及更多matplotlib知 ...

  5. python qt gui与数据可视化编程 pdf_《Python Qt GUI与数据可视化编程》第13章

    第13章 PyQtDataVisualization三维绘图 Data Visualization是Qt中的一个三维数据可视化模块,可以绘制三维柱状图.三维散点图.三维曲面等.Data Visuali ...

  6. python qt gui与数据可视化编程 kindle_Kindle电子书 – D3.js数据可视化实战手册 azw3...

    豆瓣评分:7.0 27人评价 简介: 如今这个互联网时代,人们每天都产生海量的数据,如果直接面对这些数据,可能让人无从下手.将数据可视化,用形象立体的形式将其展现,有利于分析其中的关联,攫取可能存在的 ...

  7. Python Qt GUI与数据可视化编程(二)

    信号(signal):特定情况下被发射(emit)的一种通告 槽(slot):对信号响应的函数.与一个信号关联,当信号被发射时,关联的槽函数会被自动执行 file---->new file or ...

  8. pythongui可视化编程_Python Qt GUI与数据可视化编程

    商品参数 Python Qt GUI与数据可视化编程 定价 99.00 出版社 人民邮电出版社 版次 dy 版 出版时间 2019年09月 开本 16 作者 王维波 等 装帧 平装 页数 488 字数 ...

  9. Python Qt GUI设计:信号与槽的使用方法(基础篇—7)

    目录 1.信号与槽的概念 2.信号与槽的基础函数 2.1.创建信号函数 2.2.连接信号函数 2.3.断开信号函数 2.4.发射信号函数 3.信号和槽的使用方法 3.1.内置信号与槽的使用 3.2.自 ...

  10. Python QtGUI与数据可视化编程(一)想写GUI程序?来试试Python Qt吧!

    ✅作者简介:大家好我是五维星空,目前是某国企的一名Java全栈程序员,热爱技术.喜欢代码,希望我的文章能给大家带来收获. ✅个人主页:五维星空的csdn博客 ✅系列专栏:Python QtGUI与可视 ...

最新文章

  1. 实验四 JSP数据库编程基础
  2. mybatis处理集合和循环数组问题
  3. php 原生 redis,php redis_php redis扩展_php redis使用 - Lane Blog
  4. java 获取date的时分秒_Java Date获取 年月日时分秒
  5. sql中查询类型为int的字段,返回null的异常
  6. idea下properties转成中文
  7. 风变Python编程13类的学习2
  8. GGally与pairs相关关系图_史上最全(一)
  9. Oracle instr用法
  10. 【转发】ext4文件系统
  11. linux ora-12162,【转】ORA-12162问题的解决及其补充
  12. 在浏览器的标签页显示网站标志图标
  13. SaaS、PaaS、IaaS、DaaS、BaaS 都是什么
  14. H5 前端模板 JS 用法
  15. 从 Arm Compiler 5 迁移到 Arm Compiler 6
  16. matlab波门,一种距离波门拖引有源干扰的仿真设计方法与流程
  17. 举例:MySQL 使用DQL命令查询数据
  18. C语言:计算同一年内两个日期的相隔天数
  19. 华为0510 实习笔试
  20. 深度操作系统Deepin V20正式版

热门文章

  1. mysql 查看锁表_MySQL的四种事务隔离级别
  2. 大学计算机社团学什么好,大学哪些社团组织最值得加入?很多人工作后才知道!...
  3. 计算机用户系统软件,计算机软件系统
  4. mach-O文件结构分析
  5. delphi连接mysql不用添加DSN(mysql connector odbc 5.1版)
  6. 操作系统面试相关总结
  7. 统计字符串中汉字的个数,字符串中字符自然排序
  8. tp框架引入第三方sdk的经验总结
  9. windows环境下创建多个Redis实例
  10. 关于get和post的区别