书籍详情
PyQt 5从入门到精通
作者:朱文伟
出版社:清华大学出版社
出版时间:2023-04-01
ISBN:9787302632450
定价:¥129.00
购买这本书可以去
内容简介
本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。本书学习曲线平缓,除了适合初学者之外,其内容详细和广泛的特点又使得其非常适合做软件工程师们的案头查询手册,大大节省了繁忙的工程师去查阅和筛选信息的时间,做到“一本在手,PyQt我有”。本书配套示例源码。本书共分11章,从基本的PyQt5环境搭建开始,不但有PyQt5窗口设计基础、PyQt5常用控件、菜单、工具栏和状态栏、对话框应用、布局管理等基础知识,还包括了多线程编程、数据库编程、图形图像编程和网络编程等。本书聚焦PyQt5,内容虽多但都是实实在在的“干货”。本书旨在帮助读者以短的时间掌握PyQt5的基础知识及实战应用,适合PyQt5初学者以及开发工程师,也适合作为高等院校计算机软件开发及相关专业的教材。
作者简介
朱文伟,名校计算机专业统招硕士,20年CC 、Java开发经验。主导开发过密码、图形、人工智能等产品。精通Linux、Windows系统开发及数据库开发技术。著有图书《Windows C/C 加密解密实战》《密码学原理与Java实现》《Linux C与C 一线开发实践》《Visual C 2017从入门到精通》《OpenCV 4.5计算机视觉开发实战(基于VC )》《OpenCV 4.5计算机视觉开发实战:基于Python》。
目录
第1章 Qt概述 1
1.1 Qt简介 1
1.2 发展历程 1
1.3 Qt优点 2
1.4 Qt的主要应用领域 3
1.5 认识PyQt 5
第2章 搭建PyQt开发环境 7
2.1 搭建Windows下的PyQt开发环境 7
2.1.1 下载和安装Python 7
2.1.2 Pycharm开发Python程序 9
2.1.3 安装PyQt 11
2.1.4 安装可视化界面设计器 21
2.1.5 集成Qt Designer到PyCharm 30
2.1.6 PyCharm的一些小技巧 39
2.1.7 卸载PyQt 40
2.2 PyQt 的功能模块 40
第3章 PyQt编程基础 50
3.1 字节数组类QByteArray 52
3.1.1 Unicode编码及其UTF-8实现 52
3.1.2 Python中bytes 类 54
3.1.3 构造函数 56
3.1.4 数组信息 57
3.1.5 增加数据 57
3.1.6 删除数据 59
3.1.7 修改数据 60
3.1.8 查找 62
3.1.9 提取内容 63
3.1.10 切分 65
3.1.11 转换 65
3.1.12 比较 71
3.2 认识PyQt界面Widgets 71
3.3 PyQt中界面相关的类库 72
3.3.1 类QObject 73
3.3.2 类QWidget 74
3.3.3 和主窗口有关的类 74
3.3.4 对话框和控件类 75
3.3.5 QtWidgets应用程序类型 75
3.4 获取当前时间 75
3.5 事件机制 77
3.5.1 基本概念 77
3.5.2 事件来源 78
3.5.3 事件的描述 78
3.5.4 事件的类型 78
3.5.5 GUI应用程序的事件处理流程 79
3.5.6 事件的传递 79
3.5.7 事件处理和过滤的方式 79
3.6 信号和槽 86
3.6.1 基本概念 86
3.6.2 事件机制与信号槽机制的区别 88
3.6.3 内置信号与内置槽函数 88
3.6.4 内置信号与自定义槽函数 90
3.6.5 自定义信号与内置槽函数 91
3.6.6 自定义信号与自定义槽函数 93
3.6.7 Qt中的坐标系统 98
第4章 PyQt对话框程序设计 102
4.1 对话框程序设计概述 102
4.2 QDialog类及其函数 102
4.3 创建对话框程序 104
4.3.2 设置对话框的尺寸、图标和背景图片 108
4.4 在对话框上使用按钮控件 118
4.4.1 显示控件工具箱 119
4.4.2 拖动一个按钮到对话框 120
4.4.3 选中按钮控件 120
4.4.4 移动对话框上的按钮控件 120
4.4.5 对齐对话框上的按钮控件 120
4.4.6 调整按钮控件的大小 121
4.4.7 删除对话框上的按钮控件 121
4.4.8 为按钮添加信号处理函数 121
4.5 模态对话框和非模态对话框 128
4.6 通用对话框 133
4.6.1 消息对话框QMessageBox 134
4.6.2 文件对话框QFileDialog 141
4.6.3 字体对话框QFontDialog 149
4.6.4 颜色对话框 151
4.7 移动对话框到指定位置 152
4.8 在对话框非标题栏区域实现拖动 154
第5章 PyQt控件设计 156
5.1 控件概述 156
5.2 对话框程序设计概述 156
5.3 按钮类控件 157
5.3.1 概述 157
5.3.2 按钮类的父类QAbstractButton 158
5.3.3 推压按钮QPushButton 158
5.3.4 工具按钮QToolButton 165
5.3.5 单选按钮Radio Button 168
5.3.6 复选框按钮QCheckBox 173
5.3.7 对话框组合按钮QDialogButtonBox 178
5.4 列表视图控件QListView 179
5.4.1 抽象数据项模型QAbstractItemModel 180
5.4.2 字符串列表数据模型QStringListModel 181
5.4.3 文件系统数据模型QDirModel 184
5.5 树形视图控件QTreeView 187
5.5.1 标准数据项QStandardItem 187
5.5.2 标准数据项模型QStandardItemModel 188
5.5.3 添加表头 192
5.5.4 隐藏表头 192
5.5.5 条目的操作 192
5.6 Tree Widge控件 202
5.7 组合框QComboBox 204
5.7.1 添加内容项和设置图标 205
5.7.2 删除某个内容项 205
5.7.3 清空组合框内容 205
5.7.4 QComboBox列表项的访问 205
5.7.5 选择项发生变化时的信号 206
5.8 字体组合框 207
5.9 标签控件QLabel 208
5.10 分组框控件QGroupBox 215
5.11 正则表达式和类QRegExp 216
5.11.1 正则表达式规则 216
5.11.2 正则表达式中的一些高级规则 219
5.11.3 其他通用规则 221
5.11.4 表达式属性 222
5.11.5 类QRegExp 222
5.12 行编辑框QLineEdit 226
5.12.1 常用成员函数 226
5.12.2 描述输入框显示其内容的枚举 227
5.12.3 对齐方式 227
5.12.4 获取和设置选择的文本 227
5.12.5 常用信号 227
5.12.6 限制字符的输入 228
5.13 进度条控件QProgressBar 233
5.13.1 QProgressBar常用函数 234
5.13.2 进度方向 235
5.13.3 文本显示 235
5.13.4 繁忙指示 236
5.14 布局管理器 237
5.14.1 基本布局管理器QBoxLayout 238
5.14.2 栅格布局管理器QGridLayout 238
5.14.3 窗体布局管理器QFormLayout 239
第6章 PyQt数据库编程 240
6.1 数据库的基本概念 240
6.1.1 数据库 240
6.1.2 数据库管理系统 241
6.1.3 SQL语言 241
6.2 QtSql模块 241
6.2.1 驱动层 242
6.2.2 SQL接口层 243
6.2.3 用户接口层 243
6.3 访问数据库 243
6.3.1 访问微软的Access 243
6.3.2 访问Sqlite数据库 248
第7章 PyQt文件编程 254
7.1 Qt下Python文件编程 254
7.1.1 文件路径 254
7.1.2 当前工作目录 257
7.1.3 路径与相对路径 257
7.1.4 Python文件基本操作 259
7.1.5 打开文件函数 259
7.1.6 读取文件函数 263
7.1.7 按行读取文件 264
7.1.8 向文件中写入数据 266
7.1.9 关闭文件 268
7.1.10 seek和tell函数 269
7.2 利用PyQt库进行文件编程 271
7.2.1 输入/输出设备类 271
7.2.2 文件类QFile 271
第8章 PyQt图形编程 282
8.1 概述 282
8.2 重绘事件处理函数paintEvent 283
8.3 点坐标类QPOINT 285
8.3.1 成员函数 285
8.3.2 相关非成员 286
8.3.3 定义一个点 286
8.3.4 计算欧式距离(两点之间的距离) 286
8.3.5 获取和设置点的分量值 287
8.4 矩形尺寸类QSize 288
8.4.1 定义一个矩形尺寸 289
8.4.2 获取和设置矩形尺寸的宽度和高度 289
8.4.3 缩放矩形尺寸 290
8.5 颜 色 292
8.5.1 构造颜色 294
8.5.2 获取和设置rgb分量 294
8.6 画笔类QPen 296
8.6.1 画笔的属性 296
8.6.2 构造一支画笔 299
8.6.3 获取或设置画笔颜色 300
8.6.4 获取或设置画笔宽度 300
8.6.5 获取或设置画笔线型样式 300
8.7 画 刷 302
8.8 画图类QPainter 310
8.8.1 画直线 311
8.8.2 画矩形 311
8.8.3 画椭圆和圆 312
8.8.4 绘制文本 312
第9章 菜单栏、工具栏和状态栏 316
9.1 菜单的设计与开发 316
9.1.1 菜单栏类QMenuBar 318
9.1.2 动作类QAction 319
9.1.3 菜单类QMenu 319
9.1.4 可视化添加菜单 324
9.1.5 右键菜单 327
9.2 工具栏的设计与开发 329
9.3 状态栏的设计与开发 331
9.3.2 子菜单项提示信息显示在状态栏上 334
9.3.3 临时信息不需要标签 335
9.3.4 状态栏上使用按钮 336
第10章 多线程基本编程 339
10.1 使用多线程的好处 339
10.2 多线程编程的基本概念 340
10.2.1 操作系统和多线程 340
10.2.2 线程的基本概念 340
10.2.3 线程的状态 341
10.2.4 线程函数 342
10.2.5 线程标识 342
10.2.6 QThread的基本使用 342
10.2.7 线程间通信 345
第11章 PyQt网络编程 350
11.1 TCP/IP协议 350
11.1.1 基本概念 350
11.1.2 TCP/IP协议的分层结构 350
11.2 获取主机网络信息 352
11.2.1 类QHostInfo 352
11.2.2 查询本机主机名 353
11.2.3 查询远程主机的IP地址 354
11.3 TCP编程 355
11.4 UDP编程 366
11.4.1 UDP通信概述 366
11.4.2 UDP单播编程 366
11.4.3 单播、多播(组播)和广播 370
11.5 HTTP操作 372
11.5.1 HTTP简介 373
11.5.2 HTTP工作原理 373
11.5.3 HTTP的特点 374
11.5.4 HTTP 消息结构 374
11.5.5 客户端请求消息 374
11.5.6 服务器响应消息 375
11.5.7 HTTP状态码 377
11.5.8 HTTP状态码分类 377
11.5.9 JSON数据 377
11.5.10 HTTP GET请求 380
11.5.11 HTTP POST请求 381
11.5.12 使用QNetworkAccessManager进行身份验证 383
11.5.13 提取一个网站图标 384
11.6 FTP开发 385
11.6.1 FTP概述 385
11.6.2 FTP的工作原理 386
11.6.3 FTP的传输方式 387
11.6.4 FTP的工作方式 387
11.6.5 FTP命令 388
11.6.6 FTP应答码 391
11.6.7 开发FTP客户端 392
第12章 PyQt多媒体编程 399
12.1 概述 399
12.2 视频播放类QMediaPlayer 400
12.2.1 重要成员函数 400
12.2.2 重要信号 400
12.2.3 播放音频 402
12.3 视频部件类QVideoWidget 405
12.4 播放列表类QMediaPlaylist 408
1.1 Qt简介 1
1.2 发展历程 1
1.3 Qt优点 2
1.4 Qt的主要应用领域 3
1.5 认识PyQt 5
第2章 搭建PyQt开发环境 7
2.1 搭建Windows下的PyQt开发环境 7
2.1.1 下载和安装Python 7
2.1.2 Pycharm开发Python程序 9
2.1.3 安装PyQt 11
2.1.4 安装可视化界面设计器 21
2.1.5 集成Qt Designer到PyCharm 30
2.1.6 PyCharm的一些小技巧 39
2.1.7 卸载PyQt 40
2.2 PyQt 的功能模块 40
第3章 PyQt编程基础 50
3.1 字节数组类QByteArray 52
3.1.1 Unicode编码及其UTF-8实现 52
3.1.2 Python中bytes 类 54
3.1.3 构造函数 56
3.1.4 数组信息 57
3.1.5 增加数据 57
3.1.6 删除数据 59
3.1.7 修改数据 60
3.1.8 查找 62
3.1.9 提取内容 63
3.1.10 切分 65
3.1.11 转换 65
3.1.12 比较 71
3.2 认识PyQt界面Widgets 71
3.3 PyQt中界面相关的类库 72
3.3.1 类QObject 73
3.3.2 类QWidget 74
3.3.3 和主窗口有关的类 74
3.3.4 对话框和控件类 75
3.3.5 QtWidgets应用程序类型 75
3.4 获取当前时间 75
3.5 事件机制 77
3.5.1 基本概念 77
3.5.2 事件来源 78
3.5.3 事件的描述 78
3.5.4 事件的类型 78
3.5.5 GUI应用程序的事件处理流程 79
3.5.6 事件的传递 79
3.5.7 事件处理和过滤的方式 79
3.6 信号和槽 86
3.6.1 基本概念 86
3.6.2 事件机制与信号槽机制的区别 88
3.6.3 内置信号与内置槽函数 88
3.6.4 内置信号与自定义槽函数 90
3.6.5 自定义信号与内置槽函数 91
3.6.6 自定义信号与自定义槽函数 93
3.6.7 Qt中的坐标系统 98
第4章 PyQt对话框程序设计 102
4.1 对话框程序设计概述 102
4.2 QDialog类及其函数 102
4.3 创建对话框程序 104
4.3.2 设置对话框的尺寸、图标和背景图片 108
4.4 在对话框上使用按钮控件 118
4.4.1 显示控件工具箱 119
4.4.2 拖动一个按钮到对话框 120
4.4.3 选中按钮控件 120
4.4.4 移动对话框上的按钮控件 120
4.4.5 对齐对话框上的按钮控件 120
4.4.6 调整按钮控件的大小 121
4.4.7 删除对话框上的按钮控件 121
4.4.8 为按钮添加信号处理函数 121
4.5 模态对话框和非模态对话框 128
4.6 通用对话框 133
4.6.1 消息对话框QMessageBox 134
4.6.2 文件对话框QFileDialog 141
4.6.3 字体对话框QFontDialog 149
4.6.4 颜色对话框 151
4.7 移动对话框到指定位置 152
4.8 在对话框非标题栏区域实现拖动 154
第5章 PyQt控件设计 156
5.1 控件概述 156
5.2 对话框程序设计概述 156
5.3 按钮类控件 157
5.3.1 概述 157
5.3.2 按钮类的父类QAbstractButton 158
5.3.3 推压按钮QPushButton 158
5.3.4 工具按钮QToolButton 165
5.3.5 单选按钮Radio Button 168
5.3.6 复选框按钮QCheckBox 173
5.3.7 对话框组合按钮QDialogButtonBox 178
5.4 列表视图控件QListView 179
5.4.1 抽象数据项模型QAbstractItemModel 180
5.4.2 字符串列表数据模型QStringListModel 181
5.4.3 文件系统数据模型QDirModel 184
5.5 树形视图控件QTreeView 187
5.5.1 标准数据项QStandardItem 187
5.5.2 标准数据项模型QStandardItemModel 188
5.5.3 添加表头 192
5.5.4 隐藏表头 192
5.5.5 条目的操作 192
5.6 Tree Widge控件 202
5.7 组合框QComboBox 204
5.7.1 添加内容项和设置图标 205
5.7.2 删除某个内容项 205
5.7.3 清空组合框内容 205
5.7.4 QComboBox列表项的访问 205
5.7.5 选择项发生变化时的信号 206
5.8 字体组合框 207
5.9 标签控件QLabel 208
5.10 分组框控件QGroupBox 215
5.11 正则表达式和类QRegExp 216
5.11.1 正则表达式规则 216
5.11.2 正则表达式中的一些高级规则 219
5.11.3 其他通用规则 221
5.11.4 表达式属性 222
5.11.5 类QRegExp 222
5.12 行编辑框QLineEdit 226
5.12.1 常用成员函数 226
5.12.2 描述输入框显示其内容的枚举 227
5.12.3 对齐方式 227
5.12.4 获取和设置选择的文本 227
5.12.5 常用信号 227
5.12.6 限制字符的输入 228
5.13 进度条控件QProgressBar 233
5.13.1 QProgressBar常用函数 234
5.13.2 进度方向 235
5.13.3 文本显示 235
5.13.4 繁忙指示 236
5.14 布局管理器 237
5.14.1 基本布局管理器QBoxLayout 238
5.14.2 栅格布局管理器QGridLayout 238
5.14.3 窗体布局管理器QFormLayout 239
第6章 PyQt数据库编程 240
6.1 数据库的基本概念 240
6.1.1 数据库 240
6.1.2 数据库管理系统 241
6.1.3 SQL语言 241
6.2 QtSql模块 241
6.2.1 驱动层 242
6.2.2 SQL接口层 243
6.2.3 用户接口层 243
6.3 访问数据库 243
6.3.1 访问微软的Access 243
6.3.2 访问Sqlite数据库 248
第7章 PyQt文件编程 254
7.1 Qt下Python文件编程 254
7.1.1 文件路径 254
7.1.2 当前工作目录 257
7.1.3 路径与相对路径 257
7.1.4 Python文件基本操作 259
7.1.5 打开文件函数 259
7.1.6 读取文件函数 263
7.1.7 按行读取文件 264
7.1.8 向文件中写入数据 266
7.1.9 关闭文件 268
7.1.10 seek和tell函数 269
7.2 利用PyQt库进行文件编程 271
7.2.1 输入/输出设备类 271
7.2.2 文件类QFile 271
第8章 PyQt图形编程 282
8.1 概述 282
8.2 重绘事件处理函数paintEvent 283
8.3 点坐标类QPOINT 285
8.3.1 成员函数 285
8.3.2 相关非成员 286
8.3.3 定义一个点 286
8.3.4 计算欧式距离(两点之间的距离) 286
8.3.5 获取和设置点的分量值 287
8.4 矩形尺寸类QSize 288
8.4.1 定义一个矩形尺寸 289
8.4.2 获取和设置矩形尺寸的宽度和高度 289
8.4.3 缩放矩形尺寸 290
8.5 颜 色 292
8.5.1 构造颜色 294
8.5.2 获取和设置rgb分量 294
8.6 画笔类QPen 296
8.6.1 画笔的属性 296
8.6.2 构造一支画笔 299
8.6.3 获取或设置画笔颜色 300
8.6.4 获取或设置画笔宽度 300
8.6.5 获取或设置画笔线型样式 300
8.7 画 刷 302
8.8 画图类QPainter 310
8.8.1 画直线 311
8.8.2 画矩形 311
8.8.3 画椭圆和圆 312
8.8.4 绘制文本 312
第9章 菜单栏、工具栏和状态栏 316
9.1 菜单的设计与开发 316
9.1.1 菜单栏类QMenuBar 318
9.1.2 动作类QAction 319
9.1.3 菜单类QMenu 319
9.1.4 可视化添加菜单 324
9.1.5 右键菜单 327
9.2 工具栏的设计与开发 329
9.3 状态栏的设计与开发 331
9.3.2 子菜单项提示信息显示在状态栏上 334
9.3.3 临时信息不需要标签 335
9.3.4 状态栏上使用按钮 336
第10章 多线程基本编程 339
10.1 使用多线程的好处 339
10.2 多线程编程的基本概念 340
10.2.1 操作系统和多线程 340
10.2.2 线程的基本概念 340
10.2.3 线程的状态 341
10.2.4 线程函数 342
10.2.5 线程标识 342
10.2.6 QThread的基本使用 342
10.2.7 线程间通信 345
第11章 PyQt网络编程 350
11.1 TCP/IP协议 350
11.1.1 基本概念 350
11.1.2 TCP/IP协议的分层结构 350
11.2 获取主机网络信息 352
11.2.1 类QHostInfo 352
11.2.2 查询本机主机名 353
11.2.3 查询远程主机的IP地址 354
11.3 TCP编程 355
11.4 UDP编程 366
11.4.1 UDP通信概述 366
11.4.2 UDP单播编程 366
11.4.3 单播、多播(组播)和广播 370
11.5 HTTP操作 372
11.5.1 HTTP简介 373
11.5.2 HTTP工作原理 373
11.5.3 HTTP的特点 374
11.5.4 HTTP 消息结构 374
11.5.5 客户端请求消息 374
11.5.6 服务器响应消息 375
11.5.7 HTTP状态码 377
11.5.8 HTTP状态码分类 377
11.5.9 JSON数据 377
11.5.10 HTTP GET请求 380
11.5.11 HTTP POST请求 381
11.5.12 使用QNetworkAccessManager进行身份验证 383
11.5.13 提取一个网站图标 384
11.6 FTP开发 385
11.6.1 FTP概述 385
11.6.2 FTP的工作原理 386
11.6.3 FTP的传输方式 387
11.6.4 FTP的工作方式 387
11.6.5 FTP命令 388
11.6.6 FTP应答码 391
11.6.7 开发FTP客户端 392
第12章 PyQt多媒体编程 399
12.1 概述 399
12.2 视频播放类QMediaPlayer 400
12.2.1 重要成员函数 400
12.2.2 重要信号 400
12.2.3 播放音频 402
12.3 视频部件类QVideoWidget 405
12.4 播放列表类QMediaPlaylist 408
猜您喜欢