部分 PyQt5开发基础
章 开发环境安装2
1.1Python2
1.1.1Python 简介2
1.1.2Python的下载与安装2
1.1.3IDLE的基本使用3
1.1.4安装Python包4
1.2Qt5
1.2.1Qt 简介5
1.2.2Qt 的下载与安装5
1.2.3Qt的几个工具软件7
1.2.4Qt Creator的设置7
1.3PyQt58
1.3.1PyQt5简介8
1.3.2PyQt5安装9
部分 PyQt5开发基础
章 开发环境安装2
1.1Python2
1.1.1Python 简介2
1.1.2Python的下载与安装2
1.1.3IDLE的基本使用3
1.1.4安装Python包4
1.2Qt5
1.2.1Qt 简介5
1.2.2Qt 的下载与安装5
1.2.3Qt的几个工具软件7
1.2.4Qt Creator的设置7
1.3PyQt58
1.3.1PyQt5简介8
1.3.2PyQt5安装9
1.3.3在IDLE中开启对PyQt5的代码提示功能10
第2章 PyQt5 GUI程序框架11
2.1PyQt5 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.2Qt Creator的使用23
2.3.3窗体可视化设计25
2.3.4界面组件布局管理26
2.3.5组件的信号与内建槽函数的关联29
2.3.6PyQt5 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++类库到PyQt547
2.6.1帮助信息的查找47
2.6.2正确导入模块中的类49
2.6.3部分类和接口函数的差异50
2.6.4数据类型对应关系51
2.73个单窗体GUI项目模板52
2.7.1概述52
2.7.2dialogApp项目模板53
2.7.3widgetApp项目模板54
2.7.4mainWindowApp项目模板55
2.7.5使用项目模板和实例源程序56
2.7.6在Eric中编辑和运行示例程序57
第二部分GUI应用程序设计
第3章常用界面组件的使用60
3.1数据输入输出60
3.2QPushButton62
3.3QSlider和QProgressBar64
3.4日期时间数据66
3.4.1日期时间类和界面组件66
3.4.2日期时间数据的获取并转换为字符串67
3.4.3字符串转换为日期时间68
3.4.4QLineEdit的inputMask68
3.5定时器QTimer69
3.6下拉列表框QComboBox70
3.6.1QComboBox功能概述70
3.6.2简单的ComboBox操作71
3.6.3带用户数据的ComboBox72
3.6.4QComboBox常用函数总结73
3.7QMainWindow与QAction73
3.7.1功能简介73
3.7.2窗体可视化设计75
3.7.3界面操作功能的代码实现77
3.8QListWidget和QToolButton80
3.8.1功能概述80
3.8.2窗体可视化设计81
3.8.3QToolButton与下拉式菜单84
3.8.4QListWidget的操作85
3.8.5创建右键快捷菜单88
3.9QTreeWidget和QDockWidget88
3.9.1功能概述88
3.9.2窗体可视化设计90
3.9.3QTreeWidget操作91
3.9.4QLabel和QPixmap显示图片96
3.9.5QDockWidget的操作97
3.10QTableWidget98
3.10.1QTableWidget概述98
3.10.2窗体设计与初始化99
3.10.3QTableWidget操作100
3.11容器类组件与布局设计105
3.11.1QGroupBox组件与水平布局106
3.11.2布局的layoutStretch属性106
3.11.3网格状布局107
3.11.4分割条108
第4章Model/View结构109
4.1Model/View结构109
4.1.1Model/View结构基本原理109
4.1.2Model(数据模型)110
4.1.3View(视图)111
4.1.4Delegate(代理)111
4.1.5Model/View结构的一些概念112
4.2QFileSystemModel114
4.2.1QFileSystemModel类的基本功能114
4.2.2QFileSystemModel的使用114
4.3QStringListModel116
4.3.1QStringListModel功能概述116
4.3.2QStringListModel的使用116
4.4QStandardItemModel119
4.4.1功能概述119
4.4.2界面设计120
4.4.3QStandardItemModel的使用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.1event()函数的作用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.2QFileDialog对话框152
6.1.3QColorDialog对话框154
6.1.4QFontDialog对话框154
6.1.5QProgressDialog对话框155
6.1.6QInputDialog输入对话框156
6.1.7QMessageBox消息对话框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.4MDI应用程序设计179
6.4.1MDI简介179
6.4.2文档窗体类QmyFormDoc的设计180
6.4.3主窗口设计与子窗口的使用181
第7章数据库185
7.1Qt SQL模块概述185
7.1.1Qt SQL支持的数据库185
7.1.2SQLite数据库185
7.1.3Qt SQL模块的主要类187
7.2QSqlTableModel的使用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.3QSqlQueryModel的使用201
7.3.1QSqlQueryModel功能概述201
7.3.2窗体业务逻辑类的设计和初始化202
7.3.3打开数据库和查询数据202
7.3.4记录移动205
7.4QSqlQuery的使用206
7.4.1QSqlQuery基本用法206
7.4.2QSqlQueryModel和QSqlQuery联合使用207
7.5QSqlRelationalTableModel的使用215
7.5.1关系数据表和示例功能215
7.5.2关系数据模型功能实现216
第8章绘图219
8.1QPainter绘图219
8.1.1QPainter绘图系统219
8.1.2QPen的主要功能221
8.1.3QBrush的主要功能223
8.1.4渐变填充224
8.1.5QPainter绘制基本图形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子类QmyBattery237
8.3.3QmyBattery类的使用239
8.4Graphics View绘图架构241
8.4.1场景、视图与图形项241
8.4.2Graphics View的坐标系统242
8.4.3Graphics View相关的类243
8.4.4Graphics View程序基本结构246
8.4.5Graphics View绘图程序示例250
第9章文件261
9.1文件操作相关类概述261
9.1.1文件操作接口类QFile261
9.1.2文件流操作类QTextStream和QDataStream262
9.1.3目录和文件操作相关的类262
9.2文本文件读写263
9.2.1功能概述263
9.2.2QFile读写文本文件263
9.2.3QFile和QTextStream结合读写文本文件266
9.2.4Python内建函数读写文本文件268
9.3二进制文件读写269
9.3.1基础知识和工具软件269
9.3.2QDataStream功能概述271
9.3.3QDataStream流化数据读写272
9.3.4QDataStream原始数据读写281
9.4目录和文件操作288
9.4.1目录和文件操作相关的类288
9.4.2示例功能概述288
9.4.3QFile类290
9.4.4QFileInfo类291
9.4.5QDir类292
9.4.6QFileSystemWatcher类294
0章 多媒体297
10.1PyQt5多媒体模块功能概述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
1章 GUI设计增强技术329
11.1多语言界面329
11.1.1多语言界面设计概述329
11.1.2多语言界面设计示例331
11.2QSS定制界面336
11.2.1Qt样式表的作用336
11.2.2Qt样式表句法337
11.2.3Qt样式表的使用342
第三部分数据可视化
2章 PyQtChart二维绘图346
12.1PyQtChart概述346
12.1.1模块安装与基本功能346
12.1.2一个简单的PyQtChart绘图程序347
12.1.3图表的主要组成部分348
12.2QChart绘制折线图350
12.2.1示例功能概述与界面设计350
12.2.2QPen属性设置对话框设计351
12.2.3主窗口业务逻辑类初始化353
12.2.4图表各组成部件的属性设置356
12.3QChart绘图不错功能365
12.3.1功能概述365
12.3.2自定义类QmyChartView366
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
3章 PyQtDataVisualization三维绘图411
13.1PyQtDataVisualization模块概述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
4章 Matplotlib数据可视化437
14.1Matplotlib的基本用法437
14.1.1Matplotlib的安装437
14.1.2一个脚本化的绘图程序438
14.1.3GUI程序中的Matplotlib绘图439
14.2图的主要元素的面向对象操作443
14.2.1图的主要组成元素443
14.2.2示例程序功能和窗体可视化设计445
14.2.3界面创建与初始化绘图446
14.2.4Figure对象的操作450
14.2.5Axes子图的操作453
14.2.6曲线设置456
14.2.7x轴和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自定义绘图组件类QmyFigureCanvas471
14.4.2QmyFigureCanvas类的使用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.5colormap488