《PyQt5快速开发与实战》一书作者王硕、孙洋洋,电子工业出版社2017年10月出版。
基本介绍
- 书名PyQt5快速开发与实战
- 作者王硕 孙洋洋
- ISBN978-7-121-32291-4
- 页数572
- 定价99.00元
- 出版社电子工业出版社
- 出版时间2017年10月
- 开本16
内容简介
本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战套用的书籍。PyQt5是对Qt所有类的Python封装,即可以利用Qt的强大功能,也可以利用Python丰富的生态,能够结合Python简洁的语法进行操作,其结果就是使用PyQt5可以高效简单地开发出自己想要的程式。本书内容丰富,对PyQt5基础知识的介绍比较全面,对新手使用PyQt5的一些重点难点都有专门的章节进行针对性分析,还重点介绍了如何把Python的一些重量级模组(Pandas、Matplotlib和Plotly)嵌入到PyQt5中,从而极大地节约开发时间。,本书会给出一些综合性较强的实战案例,帮助读者快速掌握PyQt5的实战套用。总而言之,本书旨在帮助读者以最短的时间掌握PyQt5的基础知识并能够实战套用,希望本书对有Python程式开发需求的读者有帮助。
目录
第1章 认识PyQt 5 1
1.1 PyQt框架简介 1
1.1.1 PyQt 5的特点 3
1.1.2 Qt与PyQt的关係 4
1.1.3 其他图形界面开发库介绍 4
1.1.4 PyQt 4/PyQt 5 6
1.1.5 Python 2/Python 3 6
1.2 PyQt 5环境搭建 7
1.2.1 在Windows下搭建PyQt 5环境 7
1.2.2 在Mac OS下搭建PyQt 5环境 15
1.2.3 PyQt 5的安装测试 20
1.2.4 安装其他Python模组 22
1.2.5 使用PyQt 5的API文档 23
1.3 Eric 6的安装与使用 25
1.3.1 Eric 6的安装及汉化 26
1.3.2 Eric 6的相关配置 29
1.3.3 安装自动补全外挂程式jedi 33
1.3.4 测试Eric 6 35
1.3.5 Eric 6的基本使用 35
1.4 本书程式下载 39
第2章 Python基本语法 41
2.1 Python简介 41
2.2 数据类型 43
案例2-1 基本运算 43
2.3 String(字元串) 45
案例2-2 字元串入门 45
案例2-3 字元串常用方法 46
2.4 List(列表) 47
案例2-4 列表操作 48
2.5 Tuple(元组) 49
案例2-5 元组操作 49
2.6 Dictionary(字典) 50
案例2-6 字典操作 50
2.7 数据类型转换 52
2.8 控制语句 53
案例2-7 控制语句 53
2.9 自定义函式 54
案例2-8 函式定义 55
2.10 函式partial 55
案例2-9 partial函式的使用 56
2.11 lambda表达式 57
案例2-10 lambda表达式操作 57
2.12 类和实例 58
案例2-11 类和实例的使用 58
2.13 类的属性和方法 59
案例2-12 类的属性和方法的使用 59
2.14 类的动态属性 61
案例2-13 类的动态属性操作 61
第3章 Qt Designer的使用 64
3.1 Qt Designer快速入门 64
3.1.1 新建主视窗 65
3.1.2 视窗主要区域介绍 66
3.1.3 查看UI档案 68
3.1.4 将.ui档案转换为.py档案 70
3.1.5 界面与逻辑分离 74
3.2 布局管理入门 75
3.2.1 使用布局管理器布局 76
3.2.2 使用容器进行布局 79
3.3 Qt Designer 实战套用 81
3.3.1 绝对布局 81
3.3.2 使用布局管理器布局 83
3.3.3 其他需要注意的内容 91
3.3.4 测试程式 94
3.4 信号和槽关联 96
3.4.1 简单入门 97
3.4.2 快速进阶 101
3.5 选单栏与工具列 106
3.5.1 界面设计 106
3.5.2 效果测试 110
3.5.3 套用载入其他视窗 112
3.6 打包资源档案 115
3.6.1 使用Qt Designer载入资源档案 115
3.6.2 在窗体中使用资源档案 116
3.6.3 转换资源档案 118
3.6.4 导入.py资源档案 119
第4章 PyQt 5基本视窗控制项 122
4.1 QMainWindow 122
4.1.1 视窗类型介绍 122
4.1.2 创建主视窗 123
案例4-1 创建主视窗 124
4.1.3 将主视窗放在萤幕中间 125
案例4-2 主视窗居中显示 125
4.1.4 关闭主视窗 127
案例4-3 关闭主视窗 127
4.2 QWidget 128
4.2.1 视窗坐标系统 129
4.2.2 常用的几何机构 130
案例4-4 萤幕坐标系统显示 131
4.2.3 创建第一个PyQt 5套用 133
案例4-5 建立一个主视窗 133
4.2.4 为套用设定程式图示 136
案例4-6 设定程式图示 136
4.2.5 显示气泡提示信息 137
4.3 QLabel 138
案例4-7 显示QLabel标籤 140
案例4-8 QLabel标籤快捷键的使用 142
4.4 文本框类控制项 143
4.4.1 QLineEdit 143
案例4-9 EchoMode的显示效果 146
案例4-10 验证器 147
案例4-11 输入掩码 149
案例4-12 综合示例 150
4.4.2 QTextEdit 152
案例4-13 QTextEdit的使用 152
4.5 按钮类控制项 154
4.5.1 QAbstractButton 154
4.5.2 QPushButton 154
案例4-14 QPushButton按钮的使用 155
4.5.3 QRadioButton 158
案例4-15 QRadioButton按钮的使用 158
4.5.4 QCheckBox 160
案例4-16 QCheckBox按钮的使用 161
4.6 QComboBox(下拉列表框) 164
案例4-17 QComboBox按钮的使用 164
4.7 QSpinBox(计数器) 166
案例4-18 QSpinBox的使用 167
4.8 QSlider(滑动条) 168
案例4-19 QSlider的使用 169
4.9 对话框类控制项 171
4.9.1 QDialog 171
案例4-20 QDialog的使用 171
4.9.2 QMessageBox 173
案例4-21 QMessageBox的使用 175
4.9.3 QInputDialog 176
案例4-22 QInputDialog的使用 176
4.9.4 QFontDialog 178
案例4-23 QFontDialog的使用 178
4.9.5 QFileDialog 180
案例4-24 QFileDialog的使用 181
4.10 视窗绘图类控制项 184
4.10.1 QPainter 184
案例4-25 绘製文字 185
案例4-26 绘製点 187
4.10.2 QPen 189
案例4-27 QPen的使用 189
4.10.3 QBrush 191
案例4-28 QBrush 的使用 192
4.10.4 QPixmap 194
案例4-29 QPixmap的使用 194
4.11 拖曳与剪贴簿 195
4.11.1 Drag与Drop 195
案例4-30 拖曳功能 197
4.11.2 QClipboard 198
案例4-31 QClipboard的使用 199
4.12 日曆与时间 202
案例4-32 QCalendar的使用 202
案例4-33 QDateTimeEdit的使用 209
4.13 选单栏、工具列与状态栏 212
4.13.1 选单栏 212
案例4-34 QMenuBar的使用 212
4.13.2 QToolBar 214
案例4-35 QToolBar的使用 215
4.13.3 QStatusBar 216
案例4-36 QStatusBar的使用 217
4.14 QPrinter 218
案例4-37 QPrinter的使用 218
第5章 PyQt 5高级界面控制项 221
5.1 表格与树 221
5.1.1 QTableView 221
案例5-1 QTableView的使用 222
5.1.2 QListView 224
案例5-2 QListView的使用 225
5.1.3 QListWidget 226
案例5-3 QListWidget的使用 226
5.1.4 QTableWidget 227
5.1.5 QTreeView 245
5.2 容器装载更多的控制项 251
5.2.1 QTabWidget 251
案例5-4 QTabWidget的使用 252
5.2.2 QStackedWidget 254
案例5-5 QStackedWidget的使用 254
5.2.3 QDockWidget 256
案例5-6 QDockWidget的使用 257
5.2.4 多文档界面 259
案例5-7 多重文档界面 260
5.2.5 QScrollBar 262
案例5-8 QScrollBar 262
5.3 多执行绪 264
5.3.1 QTimer 264
5.3.2 QThread 268
案例5-9 套用案例分离UI主执行绪与工作执行绪 274
5.3.3 事件处理 276
5.4 网页互动 278
案例5-10 载入并显示外部的Web页面 278
案例5-11 载入并显示本地的Web页面 280
案例5-12 载入并显示嵌入的HTML代码 281
案例5-13 PyQt调用JavaScript代码 283
案例5-14 JavaScript调用PyQt代码 286
第6章 PyQt 5布局管理 294
6.1 好软体的三个维度 294
6.2 PyQt 5中的布局管理 295
6.3 PyQt 5的绝对位置布局 296
6.4 QBoxLayout(框布局) 298
6.4.1 QHBoxLayout(水平布局) 298
6.4.2 QVBoxLayout(垂直布局) 300
6.4.3 addStretch()函式的使用 301
6.5 QGridLayout(格线布局) 303
6.5.1 单一的格线单元格 304
6.5.2 跨越行和列的格线单元格 306
6.6 QFormLayout(表单布局) 308
6.7 嵌套布局 309
6.7.1 在布局中添加其他布局 309
6.7.2 在控制项中添加布局 311
6.8 QSplitter 314
第7章 PyQt 5信号与槽 317
7.1 信号与槽介绍 317
7.1.1 定义信号 318
7.1.2 操作信号 319
7.1.3 信号与槽的入门套用 320
7.1.4 快速进阶 324
7.2 信号与槽再细分 324
7.2.1 内置信号和槽函式 324
7.2.2 内置信号和自定义槽函式 325
7.2.3 自定义信号和内置槽函式 326
7.2.4 自定义信号和槽函式 327
7.3 信号与槽的高级玩法 328
7.3.1 高级自定义信号与槽 328
7.3.2 使用自定义参数 333
7.3.3 装饰器信号与槽 335
7.3.4 信号与槽的断开和连线 337
7.3.5 Qt Designer神助攻界面显示与业务逻辑的分离 339
7.3.6 多执行绪中信号与槽的使用 345
7.4 事件处理机制入门 348
7.4.1 事件和信号与槽的区别 348
7.4.2 常见事件类型 348
7.4.3 使用事件处理的方法 349
7.4.4 经典案例分析 349
7.5 视窗数据传递 362
7.5.1 单一视窗数据传递 363
7.5.2 多视窗数据传递调用属性 364
7.5.3 多视窗数据传递信号与槽 368
第8章 PyQt 5图形和特效 373
8.1 视窗风格 373
8.1.1 设定视窗风格 373
案例8-1 设定视窗风格 374
8.1.2 设定视窗样式 375
8.1.3 使用自定义的无框线视窗 376
8.2 绘图 378
8.2.1 图像类 378
8.2.2 简单绘图 379
8.2.3 双缓冲绘图 381
案例8-2 绘製矩形,出现重影 382
案例8-3 使用双缓冲技术绘製矩形,避免出现重影 384
8.3 QSS的UI美化 387
8.3.1 QSS的语法规则 387
8.3.2 QSS选择器类型 389
8.3.3 QSS子控制项 390
8.3.4 QSS伪状态 391
8.3.5 QDarkStyleSheet 392
8.4 设定视窗背景 395
8.4.1 使用QSS设定视窗背景 395
8.4.2 使用QPalette设定视窗背景 396
8.4.3 使用paintEvent设定视窗背景 398
8.5 不规则视窗的显示 400
8.5.1 不规则视窗实现动画效果 404
8.5.2 载入GIF动画效果 406
8.6 设定样式 407
8.6.1 为标籤添加背景图片 407
8.6.2 为按钮添加背景图片 407
8.6.3 缩放图片 409
8.6.4 设定视窗透明 409
8.6.5 载入QSS 410
第9章 PyQt 5扩展套用 412
9.1 使用PyInstaller打包项目生成EXE档案 412
9.2 资料库处理 417
9.2.1 SQLite介绍 417
9.2.2 连线资料库 421
9.2.3 执行SQL语句 422
9.2.4 资料库模型视图 425
9.2.5 封装分页查询控制项 428
9.3 Pandas在PyQt中的套用 435
9.3.1 qtpandas的安装 435
9.3.2 官方示例解读 436
9.3.3 设定提升的视窗控制项 440
9.3.4 qtpandas的使用 442
9.4 Matplotlib在PyQt中的套用 445
9.4.1 对MatplotlibWidget的解读 445
9.4.2 设定提升的视窗控制项 448
9.4.3 MatplotlibWidget的使用 449
9.4.4 更多扩展 451
9.5 PyQtGraph在PyQt中的套用 451
9.5.1 PyQtGraph的安装 452
9.5.2 官方示例解读 452
9.5.3 设定提升的视窗控制项 453
9.5.4 PyQtGraph的使用 454
9.5.5 更多扩展 457
9.6 Plotly在PyQt中的套用 457
9.6.1 Plotly的安装 458
9.6.2 示例解读 458
9.6.3 设定提升的视窗控制项 460
9.6.4 Plotly_PyQt5的使用 461
9.6.5 更多扩展 464
9.6.6 Plotly与PyQt 5.6的结合 465
9.6.7 更多扩展 468
9.7 UI层的自动化测试 468
9.7.1 手工测试与自动化测试 469
9.7.2 模拟鸡尾酒的调酒器视窗 470
9.7.2 将界面档案转换为Python档案 473
9.7.3 单元测试程式 475
9.7.4 运行测试用例 485
9.7.5 生成测试报告 486
第10章 PyQt 5实战一经典程式开发 489
10.1 获取城市天气预报 489
10.1.1 获取天气数据 489
10.1.2 获取不同城市的天气预报API 490
10.1.3 界面实现 492
10.1.4 将界面档案转换为.py档案 493
10.1.5 调用主视窗类 495
10.2 複利计算 496
10.2.1 複利计算业务 496
10.2.2 界面实现 497
10.3 刷新部落格点击量 499
第11章 PyQt 5实战二金融领域套用 502
11.1 控制项级别的布局管理 502
11.2 视窗级别的布局管理 505
11.3 PyQt 5在私募基金公司中的套用 506
11.3.1 显示产品基本信息 506
11.3.2 展示产品组合信息 512
11.4 PyQt 5在量化投资中的套用 516
11.5 PyQt 5在券商中的套用 522
11.5.1 从爬虫说起 523
11.5.2 程式解读 525
参考文献 550