首先非常感谢大家对《快速掌握PyQt5》专栏的喜爱与支持!该专栏现已整理成书出版,书名为《PyQt编程快速上手》。
本书内容在专栏内容的基础上进行了多方面的优化,内容更加丰富,知识点布局更加合理,代码和解释也更加简洁易懂。针对粉丝朋友们在使用PyQt时常遇到的一些问题,笔者也在书中给了解决方案。除此之外,本书还详细讲解了PyInstaller和Nuitka打包的使用方法和技巧。相信这本书一定能够让大家快速上手PyQt,并感受到PyQt的魅力。
购书地址
天猫、当当、京东、异步社区
本书目录
第 1章 PyQt基础知识 1
1.1 安装PyQt 1
1.1.1 在不同系统上安装 1
1.1.2 验证安装是否成功 3
1.2 设计一个简单的PyQt窗口 3
1.2.1 程序入口 3
1.2.2 在PyQt程序中嵌入HTML代码 4
1.2.3 在类中创建窗口 5
1.3 布局管理 6
1.3.1 使用move()方法布局 7
1.3.2 垂直布局管理器QVBoxLayout 8
1.3.3 水平布局管理器QHBoxLayout 9
1.3.4 表单布局管理器QFormLayout 10
1.3.5 网格布局管理器QGridLayout 11
1.3.6 布局嵌套 12
1.4 信号和槽 13
1.4.1 理解信号和槽机制 13
1.4.2 一个信号连接一个槽 14
1.4.3 一个信号连接多个槽 17
1.4.4 多个信号连接一个槽 18
1.4.5 信号与信号连接 19
1.4.6 自定义信号 20
1.5 学会使用文档 22
1.5.1 理解文档上的C++代码 22
1.5.2 如何使用文档 23
1.6 本章小结 25
第 2章 PyQt的基础控件 26
2.1 标签控件QLabel 26
2.1.1 显示文本 26
2.1.2 显示图片 27
2.1.3 显示动图 28
2.2 消息框控件QMessageBox 30
2.2.1 各种类型的消息框 30
2.2.2 与消息框交互 32
2.2.3 编写带中文按钮的消息框 33
2.3 文本框控件 34
2.3.1 单行文本框控件QLineEdit 34
2.3.2 文本编辑框控件QTextEdit 36
2.3.3 文本浏览框控件QTextBrowser 38
2.4 各种按钮控件 39
2.4.1 普通按钮控件QPushButton 39
2.4.2 工具按钮控件QToolButton 40
2.4.3 单选框按钮控件QRadioButton 41
2.4.4 复选框按钮控件QCheckBox 42
2.4.5 下拉框按钮控件QComboBox 43
2.5 与数字相关的控件 45
2.5.1 液晶数字控件QLCDNumber 45
2.5.2 数字调节框控件QSpinBox和QDoubleSpinBox 46
2.5.3 滑动条控件QSlider 47
2.5.4 仪表盘控件QDial 48
2.6 与日期相关的控件 49
2.6.1 日历控件QCalendarWidget 49
2.6.2 日期时间控件QDateTimeEdit 51
2.7 定时器控件和进度条控件 53
2.7.1 定时器控件QTimer 53
2.7.2 进度条控件QProgressBar 54
2.8 本章小结 55
第3章 PyQt的高级控件 56
3.1 组合框控件和工具箱控件 56
3.1.1 分组框控件QGroupBox 56
3.1.2 工具箱控件QToolBox 57
3.2 滚动区域控件和滚动条控件 59
3.2.1 滚动区域控件QScrollArea 59
3.2.2 滚动条控件QScrollBar 61
3.3 更多容器控件 63
3.3.1 拆分窗口控件QSplitter 63
3.3.2 标签页控件QTabWidget 64
3.3.3 堆栈控件QStackedWidget 66
3.3.4 多文档区域控件QMdiArea 67
3.4 列表视图控件、树形视图控件、表格视图控件 69
3.4.1 列表视图控件QListView 70
3.4.2 树形视图控件QTreeView 72
3.4.3 表格视图控件QTableView 73
3.5 简化版的列表、树形、表格视图控件 75
3.5.1 简化版列表视图控件QListWidget 75
3.5.2 简化版树形视图控件QTreeWidget 76
3.5.3 简化版表格视图控件QTableWidget 78
3.6 各种对话框控件 79
3.6.1 颜色对话框控件QColorDialog 79
3.6.2 字体对话框控件QFontDialog 81
3.6.3 输入对话框控件QInputDialog 82
3.6.4 文件对话框控件QFileDialog 84
3.7 本章小结 86
第4章 深入窗口 87
4.1 窗口属性 87
4.1.1 窗口标题和图标 88
4.1.2 窗口大小和位置 88
4.1.3 其他窗口属性 91
4.2 窗口坐标 93
4.2.1 理解坐标体系 93
4.2.2 窗口的组成部分 94
4.3 窗口事件 95
4.3.1 窗口关闭事件 95
4.3.2 窗口大小调整事件 96
4.3.3 键盘事件 97
4.3.4 鼠标事件 98
4.3.5 拖放事件 100
4.3.6 绘制事件 102
4.4 主窗口类QMainWindow 103
4.4.1 主窗口的组成部分 103
4.4.2 停靠窗口类QDockWidget 105
4.4.3 菜单栏类QMenuBar 107
4.4.4 工具栏类QToolBar 108
4.4.5 状态栏类QStatusBar 110
4.4.6 程序启动画面类QSplashScreen 112
4.5 本章小结 113
第5章 Qt Designer 114
5.1 安装与配置 114
5.1.1 在Windows系统上安装 114
5.1.2 在macOS系统上安装 115
5.1.3 在Ubuntu系统上安装 115
5.1.4 在PyCharm中配置设计师 116
5.2 了解设计师窗口中的各个部分 117
5.2.1 控件箱 118
5.2.2 对象查看器 118
5.2.3 属性编辑器 119
5.2.4 菜单栏和工具栏 119
5.3 4种编辑模式 121
5.3.1 布局模式 121
5.3.2 编辑信号和槽模式 123
5.3.3 编辑伙伴关系模式 125
5.3.4 编辑Tab顺序模式 126
5.4 登录框开发实战 127
5.4.1 编辑属性 127
5.4.2 布局控件 129
5.4.3 将.ui文件转换成.py文件 130
5.4.4 编写功能逻辑代码 130
5.5 本章小结 131
第6章 PyQt高级应用 132
6.1 数据库 132
6.1.1 数据库连接和关闭 133
6.1.2 执行SQL语句 134
6.1.3 数据库模型 136
6.2 多线程 139
6.2.1 使用QThread线程类 140
6.2.2 在线程中获取窗口数据信息 143
6.2.3 编写一个简单的爬虫程序 144
6.3 绘图与打印 146
6.3.1 画笔类QPen 146
6.3.2 画刷类QBrush 149
6.3.3 用鼠标在窗口上绘制矩形 150
6.3.4 打印 153
6.4 动画 155
6.4.1 属性动画类QPropertyAnimation 155
6.4.2 串行动画组类QSequentialAnimationGroup 158
6.4.3 并行动画组类QParallelAnimationGroup 160
6.4.4 时间轴类QTimeLine 162
6.5 音频和视频 164
6.5.1 声音类QSound 164
6.5.2 音效类QSoundEffect 165
6.5.3 媒体播放机类QMediaPlayer 166
6.6 网页交互 170
6.6.1 了解QWebEngineView 170
6.6.2 制作一款简单的浏览器 172
6.7 网络应用 175
6.7.1 QUdpSocket 175
6.7.2 QTcpSocket和QTcpServer 180
6.8 QSS 183
6.8.1 安装QSS高亮插件 185
6.8.2 基本规则 185
6.8.3 选择器的类型 187
6.8.4 子控制器 189
6.8.5 伪状态 190
6.8.6 QSS第三方库 191
6.9 国际化 193
6.9.1 使用translate()方法 193
6.9.2 制作.ts文件 194
6.9.3 使用Qt Linguist 196
6.9.4 实现语言切换功能 198
6.10 本章小结 199
第7章 图形视图框架 200
7.1 图形图元类QGraphicsItem 200
7.1.1 标准图元 200
7.1.2 图元层级 203
7.1.3 图元变换 205
7.1.4 图元分组 206
7.1.5 碰撞检测 208
7.1.6 给图元添加信号和动画 209
7.2 图形场景类QGraphicsScene 211
7.2.1 管理图元 211
7.2.2 嵌入控件 212
7.3 图形视图类QGraphicsView 214
7.3.1 视图和场景的大小关系 215
7.3.2 视图变换 216
7.4 事件传递与坐标转换 217
7.4.1 事件传递顺序 217
7.4.2 坐标转换 219
7.5 本章小结 221
第8章 打包 222
8.1 PyInstaller 222
8.1.1 环境配置 222
8.1.2 两种打包模式 223
8.1.3 黑框的调试作用 225
8.1.4 给可执行文件加上图标 226
8.1.5 打包资源文件 226
8.1.6 减小打包后的文件大小 228
8.1.7 其他常用的命令 230
8.1.8 用PyInstaller打包用PyQt开发的程序 232
8.2 Nuitka 234
8.2.1 环境配置 234
8.2.2 两种打包模式 237
8.2.3 给可执行文件加上图标 239
8.2.4 打包资源文件 240
8.2.5 启用插件 242
8.2.6 减小打包文件的大小 243
8.2.7 其他常用的命令 244
8.2.8 用Nuitka打包用PyQt开发的程序 246
8.3 本章小结 247
第9章 开发可视化爬虫软件 248
9.1 实现爬虫功能 249
9.1.1 分析目标网站 249
9.1.2 编写爬虫代码 250
9.2 将爬虫与界面结合 252
9.2.1 完成界面布局 252
9.2.2 编写爬虫线程 254
9.2.3 在界面上显示爬取数据和日志 257
9.2.4 实现保存功能 259
9.3 音效与美化 262
9.3.1 添加音效 262
9.3.2 美化界面 263
9.4 打包 264
9.4.1 用PyInstaller打包 264
9.4.2 用Nuitka打包 265
9.5 本章小结 266
第 10章 开发《经典贪吃蛇》游戏 267
10.1 编写游戏场景 268
10.1.1 绘制背景和贪吃蛇图标 269
10.1.2 绘制分数 270
10.1.3 绘制可移动区域和边框 271
10.1.4 绘制“暂停”和“继续”按钮 272
10.1.5 绘制游戏失败提示 274
10.1.6 在视图窗口中显示场景 275
10.2 加入食物和贪吃蛇 277
10.2.1 在场景中添加食物 277
10.2.2 在场景中添加贪吃蛇 279
10.2.3 如何让贪吃蛇动起来 283
10.3 实现剩余的游戏逻辑 284
10.3.1 用方向键控制贪吃蛇 284
10.3.2 重新开始、暂停和继续 286
10.3.3 播放音频 287
10.4 打包 289
10.4.1 用PyInstaller打包 289
10.4.2 用Nuitka打包 290
10.5 本章小结 291