Python Qt GUI与数据可视化编程

《Python Qt GUI与数据可视化编程》

  • 出版社:人民邮电出版社
  • ISBN:9787115514165
  • 版次:1
  • 商品编码:12682860
  • 品牌:异步图书
  • 包装:平装
  • 开本:16开
  • 出版时间:2019-09-01
  • 用纸:胶版纸
  • 页数:490
  • 正文语种:中文
基本介绍书籍目录点评信息
  • 书籍内容

    本书介绍在Python中使用PyQt5和其他模块进行GUI和数据可视化编程的方法。第一部分介绍PyQt5设计GUI程序的基本框架,包括GUI应用程序的基本结构、窗体UI可视化设计与窗体业务逻辑的设计、信号与槽的特点和使用等。第二部分介绍GUI程序设计中一些主要功能模块的使用,包括基本界面组件、事件处理、数据库、绘图、多媒体等。第三部分先介绍使用PyQtChart和PyQtDataVisualization进行二维和三维数据可视化设计的方法,再介绍将Matplotlib嵌入PyQt5 GUI应用程序窗口界面中进行数据可视化的编程方法。通过研读本书,读者可以掌握使用PyQt5、PyQtChart、Matplotlib等模块进行GUI应用程序和数据可视化设计的方法。
    本书适合具有Python编程基础,并想通过Python设计GUI应用程序或在GUI应用程序中实现数据可视化的读者阅读和参考。

    编辑推荐

    PyQt5是Qt 5 C++类库的Python绑定,使用PyQt5可以在Python 中开发专业的GUI 应用程序。本书介绍PyQt5开发Python GUI应用程序的编程方法,还介绍在GUI 程序中嵌入二维和三维数据可视化功能的编程方法,特别是将Matplotlib 嵌入GUI 界面的面向对象编程方法。
    本书包含大量完整示例程序,使学习过程具有可跟随性和可操作性,适合具有Python编程基础,需要使用Python设计GUI应用程序,或在GUI应用程序中嵌入数据可视化功能的读者。
    本书主要内容包括:
    ● 基于PyQt5的GUI应用程序的技术框架和工具软件的使用;
    ● GUI程序设计中常用界面组件和功能模块的使用;
    ● 使用PyQtChart、PyQtDataVisualization、Matplotlib在GUI程序中嵌入二维和三维数据可视化功能的编程方法。

    作者简介

    王维波
    博士,大学教师,从事测控技术与仪器专业相关的工作,主要研究地球物理探测仪器开发、监测数据处理方法和软件开发。著有《Qt 5.9 C++开发指南》一书。
    栗宝鹃
    博士,科研人员,主要从事地球物理、水下探测、遥感等专业方向的数据处理和图像识别方面的研究工作,在日常工作中常使用Qt和Python解决实际问题。
    张晓东
    博士,大学教师,从事自动化专业相关的教学工作,研究方向主要是优化算法、最优控制和智能控制。具有丰富的编程经验,善于通过Qt C++和Python的结合提高算法效率。
  • 目 录
    第 一部分 PyQt5开发基础
    第 1章 开发环境安装 2
    1.1 Python 2
    1.1.1 Python 简介 2
    1.1.2 Python的下载与安装 2
    1.1.3 IDLE的基本使用 3
    1.1.4 安装Python包 4
    1.2 Qt 5
    1.2.1 Qt 简介 5
    1.2.2 Qt 的下载与安装 5
    1.2.3 Qt的几个工具软件 7
    1.2.4 Qt Creator的设置 7
    1.3 PyQt5 8
    1.3.1 PyQt5简介 8
    1.3.2 PyQt5安装 9
    1.3.3 在IDLE中开启对PyQt5的代码提示功能 10
    第 2章 PyQt5 GUI程序框架 11
    2.1 PyQt5 GUI程序的基本框架 11
    2.2 使用可视化设计窗体的GUI程序 12
    2.2.1 用UI Designer可视化设计窗体 13
    2.2.2 将ui文件编译为py文件 16
    2.2.3 使用Ui_FormHello类的GUI程序框架 18
    2.2.4 界面与逻辑分离的GUI程序框架 19
    2.3 信号与槽的使用 23
    2.3.1 信号与槽功能概述 23
    2.3.2 Qt Creator的使用 23
    2.3.3 窗体可视化设计 25
    2.3.4 界面组件布局管理 26
    2.3.5 组件的信号与内建槽函数的关联 29
    2.3.6 PyQt5 GUI项目程序框架 30
    2.3.7 为组件的内建信号编写槽函数 35
    2.4 自定义信号的使用 39
    2.4.1 信号与槽的一些特点和功能 39
    2.4.2 自定义信号使用示例 40
    2.4.3 使用信号与槽的一些注意事项 43
    2.5 资源文件的使用 43
    2.5.1 功能概述 43
    2.5.2 窗体可视化设计 44
    2.5.3 创建和使用资源文件 44
    2.5.4 窗体文件和资源文件的编译 45
    2.5.5 窗体业务逻辑类的设计 46
    2.5.6 为应用程序设置图标 47
    2.6 从Qt C++类库到PyQt5 47
    2.6.1 帮助信息的查找 47
    2.6.2 正确导入模块中的类 49
    2.6.3 部分类和接口函数的差异 50
    2.6.4 数据类型对应关系 51
    2.7 3个单窗体GUI项目模板 52
    2.7.1 概述 52
    2.7.2 dialogApp项目模板 53
    2.7.3 widgetApp项目模板 54
    2.7.4 mainWindowApp项目模板 55
    2.7.5 使用项目模板和实例源程序 56
    2.7.6 在Eric中编辑和运行示例程序 57
    第二部分 GUI应用程序设计
    第3章 常用界面组件的使用 60
    3.1 数据输入输出 60
    3.2 QPushButton 62
    3.3 QSlider和QProgressBar 64
    3.4 日期时间数据 66
    3.4.1 日期时间类和界面组件 66
    3.4.2 日期时间数据的获取并转换为字符串 67
    3.4.3 字符串转换为日期时间 68
    3.4.4 QLineEdit的inputMask 68
    3.5 定时器QTimer 69
    3.6 下拉列表框QComboBox 70
    3.6.1 QComboBox功能概述 70
    3.6.2 简单的ComboBox操作 71
    3.6.3 带用户数据的ComboBox 72
    3.6.4 QComboBox常用函数总结 73
    3.7 QMainWindow与QAction 73
    3.7.1 功能简介 73
    3.7.2 窗体可视化设计 75
    3.7.3 界面操作功能的代码实现 77
    3.8 QListWidget和QToolButton 80
    3.8.1 功能概述 80
    3.8.2 窗体可视化设计 81
    3.8.3 QToolButton与下拉式菜单 84
    3.8.4 QListWidget的操作 85
    3.8.5 创建右键快捷菜单 88
    3.9 QTreeWidget和QDockWidget 88
    3.9.1 功能概述 88
    3.9.2 窗体可视化设计 90
    3.9.3 QTreeWidget操作 91
    3.9.4 QLabel和QPixmap显示图片 96
    3.9.5 QDockWidget的操作 97
    3.10 QTableWidget 98
    3.10.1 QTableWidget概述 98
    3.10.2 窗体设计与初始化 99
    3.10.3 QTableWidget操作 100
    3.11 容器类组件与布局设计 105
    3.11.1 QGroupBox组件与水平布局 106
    3.11.2 布局的layoutStretch属性 106
    3.11.3 网格状布局 107
    3.11.4 分割条 108
    第4章 Model/View结构 109
    4.1 Model/View结构 109
    4.1.1 Model/View结构基本原理 109
    4.1.2 Model(数据模型) 110
    4.1.3 View(视图) 111
    4.1.4 Delegate(代理) 111
    4.1.5 Model/View结构的一些概念 112
    4.2 QFileSystemModel 114
    4.2.1 QFileSystemModel类的基本功能 114
    4.2.2 QFileSystemModel的使用 114
    4.3 QStringListModel 116
    4.3.1 QStringListModel功能概述 116
    4.3.2 QStringListModel的使用 116
    4.4 QStandardItemModel 119
    4.4.1 功能概述 119
    4.4.2 界面设计 120
    4.4.3 QStandardItemModel的使用 120
    4.5 自定义代理 128
    4.5.1 自定义代理的功能 128
    4.5.2 自定义代理类的基本设计要求 128
    4.5.3 基于QDoubleSpinBox的自定义代理类 129
    4.5.4 基于QComboBox的自定义代理类 130
    4.5.5 自定义代理类的使用 131
    第5章 事件处理 133
    5.1 默认事件处理 133
    5.1.1 应用程序的事件循环 133
    5.1.2 事件类型与默认的事件处理函数 133
    5.1.3 事件与信号的关系 137
    5.2 事件拦截与事件过滤 139
    5.2.1 event()函数的作用 139
    5.2.2 事件过滤器 140
    5.2.3 事件队列的及时处理 141
    5.3 拖放事件与拖放操作 142
    5.3.1 拖放操作相关事件 142
    5.3.2 外部文件拖放操作示例 143
    5.4 具有拖放操作功能的组件 146
    5.4.1 功能概述 146
    5.4.2 界面设计与初始化 147
    5.4.3 拖放操作属性的显示 148
    5.4.4 拖放属性的设置 149
    5.4.5 通过事件过滤器实现项的删除 150
    第6章 对话框与多窗口设计 151
    6.1 标准对话框 151
    6.1.1 概述 151
    6.1.2 QFileDialog对话框 152
    6.1.3 QColorDialog对话框 154
    6.1.4 QFontDialog对话框 154
    6.1.5 QProgressDialog对话框 155
    6.1.6 QInputDialog输入对话框 156
    6.1.7 QMessageBox消息对话框 157
    6.2 自定义对话框及其使用 159
    6.2.1 对话框的不同调用方式 159
    6.2.2 示例项目的文件组成 160
    6.2.3 主窗口的设计与初始化 161
    6.2.4 对话框QmyDialogSize的创建和使用 163
    6.2.5 对话框QmyDialogHeaders的创建和使用 165
    6.2.6 对话框QmyDialogLocate的创建和使用 166
    6.3 多窗口应用程序 170
    6.3.1 主要的窗体类及其用途 170
    6.3.2 窗体类重要特性的设置 170
    6.3.3 多窗口应用程序设计示例 172
    6.4 MDI应用程序设计 179
    6.4.1 MDI简介 179
    6.4.2 文档窗体类QmyFormDoc的设计 180
    6.4.3 主窗口设计与子窗口的使用 181
    第7章 数据库 185
    7.1 Qt SQL模块概述 185
    7.1.1 Qt SQL支持的数据库 185
    7.1.2 SQLite数据库 185
    7.1.3 Qt SQL模块的主要类 187
    7.2 QSqlTableModel的使用 188
    7.2.1 功能概述 188
    7.2.2 窗体可视化设计 190
    7.2.3 窗体业务逻辑类的设计和初始化 190
    7.2.4 打开数据库和数据表 191
    7.2.5 添加、插入与删除记录 197
    7.2.6 保存与取消修改 198
    7.2.7 设置和清除照片 199
    7.2.8 数据记录的遍历 199
    7.2.9 记录的排序 200
    7.2.10 记录的过滤 200
    7.3 QSqlQueryModel的使用 201
    7.3.1 QSqlQueryModel功能概述 201
    7.3.2 窗体业务逻辑类的设计和初始化 202
    7.3.3 打开数据库和查询数据 202
    7.3.4 记录移动 205
    7.4 QSqlQuery的使用 206
    7.4.1 QSqlQuery基本用法 206
    7.4.2 QSqlQueryModel和QSqlQuery联合使用 207
    7.5 QSqlRelationalTableModel的使用 215
    7.5.1 关系数据表和示例功能 215
    7.5.2 关系数据模型功能实现 216
    第8章 绘图 219
    8.1 QPainter绘图 219
    8.1.1 QPainter绘图系统 219
    8.1.2 QPen的主要功能 221
    8.1.3 QBrush的主要功能 223
    8.1.4 渐变填充 224
    8.1.5 QPainter绘制基本图形 227
    8.2 坐标系统和坐标变换 230
    8.2.1 坐标变换函数 230
    8.2.2 坐标变换绘图实例 231
    8.2.3 视口和窗口 234
    8.2.4 绘图叠加的效果 236
    8.3 自定义界面组件 237
    8.3.1 功能概述 237
    8.3.2 自定义QWidget子类QmyBattery 237
    8.3.3 QmyBattery类的使用 239
    8.4 Graphics View绘图架构 241
    8.4.1 场景、视图与图形项 241
    8.4.2 Graphics View的坐标系统 242
    8.4.3 Graphics View相关的类 243
    8.4.4 Graphics View程序基本结构 246
    8.4.5 Graphics View绘图程序示例 250
    第9章 文件 261
    9.1 文件操作相关类概述 261
    9.1.1 文件操作接口类QFile 261
    9.1.2 文件流操作类QTextStream和QDataStream 262
    9.1.3 目录和文件操作相关的类 262
    9.2 文本文件读写 263
    9.2.1 功能概述 263
    9.2.2 QFile读写文本文件 263
    9.2.3 QFile和QTextStream结合读写文本文件 266
    9.2.4 Python内建函数读写文本文件 268
    9.3 二进制文件读写 269
    9.3.1 基础知识和工具软件 269
    9.3.2 QDataStream功能概述 271
    9.3.3 QDataStream流化数据读写 272
    9.3.4 QDataStream原始数据读写 281
    9.4 目录和文件操作 288
    9.4.1 目录和文件操作相关的类 288
    9.4.2 示例功能概述 288
    9.4.3 QFile类 290
    9.4.4 QFileInfo类 291
    9.4.5 QDir类 292
    9.4.6 QFileSystemWatcher类 294
    第 10章 多媒体 297
    10.1 PyQt5多媒体模块功能概述 297
    10.2 音频播放 298
    10.2.1 使用QMediaPlayer播放音乐文件 298
    10.2.2 使用QSoundEffect和QSound播放音效文件 303
    10.3 音频输入 304
    10.3.1 使用QAudioRecorder录制音频 304
    10.3.2 使用QAudioInput获取音频输入 310
    10.4 视频播放 317
    10.4.1 在QVideoWidget上显示视频 317
    10.4.2 在QGraphicsVideoItem上播放视频 321
    10.5 摄像头的使用 322
    10.5.1 摄像头操作概述 322
    10.5.2 示例功能和界面可视化设计 324
    10.5.3 使用摄像头拍照 324
    10.5.4 使用QMediaRecorder通过摄像头录像 328
    第 11章 GUI设计增强技术 329
    11.1 多语言界面 329
    11.1.1 多语言界面设计概述 329
    11.1.2 多语言界面设计示例 331
    11.2 QSS定制界面 336
    11.2.1 Qt样式表的作用 336
    11.2.2 Qt样式表句法 337
    11.2.3 Qt样式表的使用 342
    第三部分 数据可视化
    第 12章 PyQtChart二维绘图 346
    12.1 PyQtChart概述 346
    12.1.1 模块安装与基本功能 346
    12.1.2 一个简单的PyQtChart绘图程序 347
    12.1.3 图表的主要组成部分 348
    12.2 QChart绘制折线图 350
    12.2.1 示例功能概述与界面设计 350
    12.2.2 QPen属性设置对话框设计 351
    12.2.3 主窗口业务逻辑类初始化 353
    12.2.4 图表各组成部件的属性设置 356
    12.3 QChart绘图高级功能 365
    12.3.1 功能概述 365
    12.3.2 自定义类QmyChartView 366
    12.3.3 主窗口可视化设计 368
    12.3.4 绘图功能的实现 368
    12.4 对数坐标轴和多坐标轴 373
    12.4.1 功能概述 373
    12.4.2 主窗口可视化设计 374
    12.4.3 界面和图表初始化 374
    12.4.4 载入数据文件并绘制曲线 375
    12.5 饼图和各种柱状图 377
    12.5.1 功能概述 377
    12.5.2 窗口初始化与数据准备 378
    12.5.3 其他界面操作功能的实现 381
    12.5.4 柱状图 382
    12.5.5 堆叠柱状图 387
    12.5.6 百分比柱状图 388
    12.5.7 饼图 390
    12.6 蜡烛图和日期时间坐标轴 392
    12.6.1 功能概述 392
    12.6.2 界面和图表初始化 394
    12.6.3 绘图功能的实现 395
    12.7 区域填充图 399
    12.7.1 功能概述 399
    12.7.2 界面和图表初始化 400
    12.7.3 绘图功能的实现 402
    12.8 极坐标图 405
    12.8.1 功能概述 405
    12.8.2 绘制极坐标图 406
    12.8.3 其他功能的实现 408
    第 13章 PyQtDataVisualization三维绘图 411
    13.1 PyQtDataVisualization模块概述 411
    13.1.1 模块安装与导入 411
    13.1.2 模块中主要的类 411
    13.2 三维柱状图 413
    13.2.1 功能概述 413
    13.2.2 窗体可视化设计 413
    13.2.3 初始化创建三维柱状图 414
    13.2.4 其他功能的实现 417
    13.3 三维散点图 424
    13.3.1 功能概述 424
    13.3.2 创建三维散点图 425
    13.3.3 散点数据管理 427
    13.4 三维曲面图 429
    13.4.1 功能概述 429
    13.4.2 三维曲面图 429
    13.4.3 三维地形图 434
    第 14章 Matplotlib数据可视化 437
    14.1 Matplotlib的基本用法 437
    14.1.1 Matplotlib的安装 437
    14.1.2 一个脚本化的绘图程序 438
    14.1.3 GUI程序中的Matplotlib绘图 439
    14.2 图的主要元素的面向对象操作 443
    14.2.1 图的主要组成元素 443
    14.2.2 示例程序功能和窗体可视化设计 445
    14.2.3 界面创建与初始化绘图 446
    14.2.4 Figure对象的操作 450
    14.2.5 Axes子图的操作 453
    14.2.6 曲线设置 456
    14.2.7 x轴和y轴设置 458
    14.3 交互操作 464
    14.3.1 交互功能概述 464
    14.3.2 界面构造与初始化绘图 466
    14.3.3 界面其他功能的实现 469
    14.3.4 交互事件的处理 469
    14.4 典型二维图的绘制 471
    14.4.1 自定义绘图组件类QmyFigureCanvas 471
    14.4.2 QmyFigureCanvas类的使用 473
    14.4.3 直方图 475
    14.4.4 填充图 476
    14.4.5 饼图 477
    14.4.6 火柴杆图 478
    14.4.7 极坐标图 480
    14.5 三维数据绘图 482
    14.5.1 三维数据绘图概述 482
    14.5.2 窗体初始化 483
    14.5.3 绘制三维图 486
    14.5.4 三维数据绘制二维图 487
    14.5.5 colormap 488
微信公众号

热门文章

更多