《PyQt从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用PyQt5进行Python GUI应用程序开发应该掌握的各方面技术。全书共分20章,包括PyQt5入门,Python的下载与安装,搭建PyQt5开发环境,Python语言基础,Python中的序列,Python面向对象基础,创建*个PyQt5程序,PyQt5窗口设计基础,PyQt5常用控件的使用,PyQt5布局管理,菜单、工具栏和状态栏,PyQt5高级控件的使用,对话框的使用,使用Python操作数据库,表格控件的使用,文件及文件夹操作,PyQt5绘图技术,多线程编程,PyQt5程序的打包发布,学生信息管理系统(PyQt5 MySQL PyMySQL模块实现)等。
《PyQt从入门到精通》从零基础开始,提供了从PyQt入门到编程高手所必需的各项知识。无论有没有Python基础,通过本书你都能最终成为GUI与数据可视化高手。
(1)主流技术,全面解析。本书涵盖PyQt5常用控件、PyQt5布局管理、PyQt5高级控件、PyQt5绘图技术、多线程编程以及PyQt5程序的打包发布等技术,一本书教你掌握PyQt5开发的主流核心技术。
(2)由浅入深,循序渐进。本书引领读者按照基础知识→核心技术→高级应用→项目实战循序渐进地学习,符合认知规律。
(3)边学边练,学以致用。85个应用示例+1个行业项目案例+136集Python零基础扫盲课,边学边练,在实践中提升技能。
(4)精彩栏目,贴心提醒。本书设置了很多“注意”“说明”“技巧”等小栏目,有利于读者在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握个别技术的应用技巧。
(5)在线解答,高效学习。在线答疑QQ及技术支持网站,不定期进行在线直播课程。
在大数据、人工智能应用越来越普遍的今天,Python可以说是当下世界上最热门、应用最广泛的编程语言之一,人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。这些开发的前提是需要界面来进行支撑的,PyQt5作为最强大的GUI界面开发库之一,无疑成为Python开发人员的必备基础。
本书提供了从PyQt5入门到编程高手所必备的各类知识,共分4篇。
第1篇:基础知识。本篇主要包括PyQt5入门、Python的下载与安装、搭建PyQt5开发环境、Python语言基础、Python中的序列、Python面向对象基础、创建第一个PyQt5程序以及PyQt5窗口设计基础等内容。本篇结合大量的图示、实例等,使读者快速掌握PyQt5开发的必备知识,为以后编程奠定坚实的基础。
第2篇:核心技术。本篇介绍PyQt5常用控件的使用,PyQt5布局管理,菜单、工具栏和状态栏,PyQt5高级控件的使用,对话框的使用,使用Python操作数据库,表格控件的使用等内容。学习完这一部分,能够开发一些小型应用程序。
第3篇:高级应用。本篇介绍文件及文件夹操作、PyQt5绘图技术、多线程编程以及PyQt5程序的打包发布。学习完这一部分,能够开发文件流程序、图形图像程序、多线程应用程序等,并能够对PyQt5程序进行打包。
第4篇:项目实战。本篇通过一个中小型、完整的学生信息管理系统,运用软件工程的设计思想,让读者学习如何进行软件项目的实践开发。书中按照“需求分析→系统设计→数据库设计→公共模块设计→实现项目”的流程进行介绍,带领读者一步一步亲身体验开发项目的全过程。
本书特点
由浅入深,循序渐进。本书以初、中级程序员为对象,采用图文结合、循序渐进的编排方式,从PyQt5开发环境的搭建到PyQt5的核心技术应用,最后通过一个完整的实战项目,对使用PyQt5进行Python GUI开发进行了详细讲解,帮助读者快速掌握PyQt5开发技术,全面提升开发经验。
实例典型,轻松易学。通过例子学习是最好的学习方式,本书通过“一个知识点、一个例子、一个结果、一段评析”的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,为书中几乎为每行代码都提供了注释。
项目实战,经验累积。本书通过一个完整的实战项目,讲解实际项目的完整开发过程,带领读者亲身体验项目开发的全过程,积累项目经验。
精彩栏目,贴心提醒。本书根据需要在各章使用了很多“注意”“说明”“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,并轻松地掌握相关技术的应用技巧。
读者对象:初学编程的自学者、编程爱好者、大中专院校的老师和学生、相关培训机构的老师和学员、 毕业设计的学生、初中级程序开发人员、程序测试及维护人员、参加实习的“菜鸟”程序员。
读者服务:本书附赠的各类学习资源,读者可登录清华大学出版社网站,在对应图书页面下获取其下载方式。也可扫描图书封底的“文泉云盘”二维码,获取其下载方式。
感谢您购买本书,希望本书能成为您编程路上的领航者。
“零门槛”编程,一切皆有可能。
祝读书快乐!
明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。
第1篇 基础知识
第1章 PyQt5入门 2
1.1 Python语言介绍 2
1.1.1 了解Python 2
1.1.2 Python的版本 3
1.1.3 Python的应用领域 3
1.2 GUI与PyQt5 5
1.2.1 GUI简介 5
1.2.2 什么是PyQt5 6
1.2.3 PyQt5与Qt的关系 7
1.2.4 PyQt5的主要模块 8
1.2.5 其他常用GUI开发库 9
1.3 小结 10
第2章 Python的下载与安装 11
2.1 Python环境概述 11
2.2 在Windows系统中安装Python 12
2.2.1 下载Python 12
2.2.2 安装Python 13
2.2.3 测试Python安装是否成功 15
2.2.4 Python安装失败的解决方法 16
2.3 在Linux系统中安装Python 18
2.3.1 通过虚拟机安装Ubuntu系统 18
2.3.2 使用并更新已有Python 20
2.3.3 重新安装Python 23
2.4 在Mac OS系统中安装Python 27
2.4.1 下载安装文件 27
2.4.2 安装Python 28
2.4.3 安装安全证书 30
2.4.4 打开并使用Python 31
2.4.5 更新pip及换源 32
2.5 小结 33
第3章 搭建PyQt5开发环境 34
3.1 PyCharm开发工具的下载与安装 34
3.1.1 下载PyCharm 34
3.1.2 安装PyCharm 35
3.1.3 启动并配置PyCharm 36
3.2 在PyCharm中配置PyQt5环境 38
3.2.1 安装PyQt5及设计器 38
3.2.2 配置PyQt5设计器及转换工具 42
3.3 小结 44
第4章 Python语言基础 45
4.1 变量 45
4.1.1 变量的命名和赋值 45
4.1.2 变量的基本类型 46
4.1.3 变量的输入与输出 49
4.2 运算符 51
4.2.1 算术运算符 51
4.2.2 赋值运算符 52
4.2.3 比较(关系)运算符 53
4.2.4 逻辑运算符 54
4.2.5 位运算 55
4.3 流程控制语句 58
4.3.1 顺序结构 58
4.3.2 条件分支结构 59
4.3.3 循环结构 63
4.4 小结 70
第5章 Python中的序列 71
5.1 列表与元组 71
5.1.1 列表的创建 71
5.1.2 检测列表元素 73
5.1.3 列表截取—切片 73
5.1.4 列表的拼接 74
5.1.5 遍历列表 75
5.1.6 列表排序 77
5.1.7 元组 79
5.2 字典与集合 82
5.2.1 字典的定义 82
5.2.2 遍历字典 85
5.2.3 集合简介 86
5.3 小结 87
第6章 Python面向对象基础 88
6.1 函数 88
6.1.1 函数的定义 88
6.1.2 调用函数 90
6.1.3 参数传递 91
6.2 面向对象编程基础 96
6.2.1 面向对象概述 96
6.2.2 类的定义和使用 98
6.3 小结 106
第7章 创建第一个PyQt5程序 107
7.1 认识Qt Designer 107
7.1.1 几种常用的窗口类型 107
7.1.2 熟悉Qt Designer窗口区域 110
7.2 使用Qt Designer创建窗口 114
7.2.1 MainWindow介绍 114
7.2.2 创建主窗口 114
7.2.3 设计主窗口 114
7.2.4 预览窗口效果 115
7.2.5 查看Python代码 116
7.2.6 将.ui文件转换为.py文件 116
7.2.7 运行主窗口 117
7.3 小结 118
第8章 PyQt5窗口设计基础 119
8.1 熟悉窗口的属性 119
8.2 对窗口进行个性化设置 120
8.2.1 基本属性设置 120
8.2.2 更换窗口的图标 122
8.2.3 设置窗口的背景 123
8.2.4 控制窗口透明度 130
8.2.5 设置窗口样式 131
8.3 信号与槽机制 132
8.3.1 信号与槽的基本概念 132
8.3.2 编辑信号与槽 133
8.3.3 自定义槽 135
8.3.4 将自定义槽连接到信号 135
8.4 多窗口设计 135
8.4.1 多窗口的建立 136
8.4.2 设置启动窗口 137
8.4.3 窗口之间的关联 137
8.5 小结 138
第2篇 核心技术
第9章 PyQt5常用控件的使用 140
9.1 控件概述 140
9.1.1 认识控件 140
9.1.2 控件的命名规范 141
9.2 文本类控件 142
9.2.1 Label:标签控件 142
9.2.2 LineEdit:单行文本框 145
9.2.3 TextEdit:多行文本框 147
9.2.4 SpinBox:整数数字选择控件 148
9.2.5 DoubleSpinBox:小数数字选择控件 149
9.2.6 LCDNumber:液晶数字显示控件 150
9.3 按钮类控件 152
9.3.1 PushButton:按钮 152
9.3.2 ToolButton:工具按钮 154
9.3.3 CommandLinkButton:命令链接按钮 155
9.3.4 RadioButton:单选按钮 156
9.3.5 CheckBox:复选框 158
9.4 选择列表类控件 160
9.4.1 ComboBox:下拉组合框 160
9.4.2 FontComboBox:字体组合框 161
9.4.3 ListWidget:列表 162
9.5 容器控件 164
9.5.1 GroupBox:分组框 164
9.5.2 TabWidget:选项卡 165
9.5.3 ToolBox:工具盒 167
9.6 日期时间类控件 171
9.6.1 日期和(或)时间控件 171
9.6.2 CalendarWidget:日历控件 173
9.7 小结 175
第10章 PyQt5布局管理 176
10.1 线性布局 176
10.1.1 VerticalLayout:垂直布局 177
10.1.2 HorizontalLayout:水平布局 178
10.2 GridLayout:网格布局 180
10.2.1 网格布局的基本使用 180
10.2.2 跨越行和列的网格布局 182
10.3 FormLayout:表单布局 184
10.4 布局管理器的嵌套 186
10.4.1 嵌套布局的基本使用 186
10.4.2 通过嵌套布局设计一个微信聊天窗口 187
10.5 MDIArea:MDI窗口设计 189
10.5.1 认识MDI窗口 189
10.5.2 子窗口基础类 190
10.5.3 MDI子窗口的动态添加及排列 191
10.6 小结 193
第11章 菜单、工具栏和状态栏 194
11.1 菜单 194
11.1.1 菜单基础类 194
11.1.2 添加和删除菜单 196
11.1.3 设置菜单项 196
11.1.4 为菜单设置快捷键 197
11.1.5 为菜单设置图标 197
11.1.6 菜单的功能实现 198
11.2 工具栏 200
11.2.1 工具栏类:QToolBar 200
11.2.2 添加工具栏 201
11.2.3 为工具栏添加图标按钮 201
11.2.4 一次为工具栏添加多个图标按钮 202
11.2.5 向工具栏中添加其他控件 202
11.2.6 设置工具栏按钮的大小 203
11.2.7 工具栏的单击功能实现 203
11.3 状态栏 205
11.3.1 状态栏类:QStatusBar 205
11.3.2 添加状态栏 206
11.3.3 向状态栏中添加控件 206
11.3.4 在状态栏中显示和删除临时信息 206
11.3.5 在状态栏中实时显示当前时间 207
11.4 小结 209
第12章 PyQt5高级控件的使用 210
12.1 进度条类控件 210
12.1.1 ProgressBar:进度条 210
12.1.2 自定义等待提示框 214
12.1.3 滑块:QSlider 216
12.2 树控件 219
12.2.1 TreeView:树视图 219
12.2.2 TreeWidget:树控件 224
12.3 分割控件 227
12.3.1 分割线:QFrame 228
12.3.2 弹簧:QSpacerItem 230
12.4 其他控件 231
12.4.1 Dial:旋钮控件 231
12.4.2 滚动条:QScrollBar 233
12.5 小结 234
第13章 对话框的使用 235
13.1 QMessageBox:对话框 235
13.1.1 对话框的种类 235
13.1.2 对话框的使用方法 236
13.1.3 与对话框进行交互 237
13.2 QFileDialog:文件对话框 238
13.2.1 QFileDialog类概述 238
13.2.2 使用QFileDialog选择文件 239
13.2.3 使用QFileDialog选择文件夹 241
13.3 QInputDialog:输入对话框 242
13.3.1 QInputDialog概述 242
13.3.2 QInputDialog对话框的使用 243
13.4 字体和颜色对话框 246
13.4.1 QFontDialog:字体对话框 246
13.4.2 QColorDialog:颜色对话框 247
13.4.3 字体和颜色对话框的使用 247
13.5 小结 249
第14章 使用Python操作数据库 250
14.1 数据库编程接口 250
14.1.1 连接对象 250
14.1.2 游标对象 251
14.2 使用内置的SQLite 252
14.2.1 创建数据库文件 252
14.2.2 操作SQLite 253
14.3 MySQL数据库的使用 257
14.3.1 下载安装MySQL 258
14.3.2 安装PyMySQL模块 262
14.3.3 连接数据库 262
14.3.4 创建数据表 263
14.3.5 操作MySQL数据表 265
14.4 小结 266
第15章 表格控件的使用 267
15.1 TableWidget表格控件 267
15.2 在表格中显示数据库数据 269
15.3 隐藏垂直标题 270
15.4 设置最后一列自动填充容器 271
15.5 禁止编辑单元格 272
15.6 设置单元格的文本颜色 272
15.7 设置指定列的排序方式 273
15.8 在指定列中显示图片 273
15.9 向指定列中添加PyQt5标准控件 274
15.10 合并指定单元格 275
15.11 小结 276
第3篇 高级应用
第16章 文件及文件夹操作 278
16.1 Python内置的文件操作 278
16.1.1 创建和打开文件 278
16.1.2 关闭文件 280
16.1.3 打开文件时使用with语句 280
16.1.4 写入文件内容 281
16.1.5 读取文件 282
16.1.6 复制文件 284
16.1.7 移动文件 284
16.1.8 重命名文件 285
16.1.9 删除文件 285
16.1.10 获取文件基本信息 286
16.2 Python内置的文件夹操作 288
16.2.1 获取文件夹路径 288
16.2.2 判断文件夹是否存在 290
16.2.3 创建文件夹 290
16.2.4 复制文件夹 291
16.2.5 移动文件夹 292
16.2.6 重命名文件夹 292
16.2.7 删除文件夹 293
16.2.8 遍历文件夹 293
16.3 PyQt5中的文件及文件夹操作 296
16.3.1 使用QFile类操作文件 296
16.3.2 使用QDir类操作文件夹 300
16.4 小结 305
第17章 PyQt5绘图技术 306
17.1 PyQt5绘图基础 306
17.2 设置画笔与画刷 308
17.2.1 设置画笔:QPen 308
17.2.2 设置画刷:QBrush 310
17.3 绘制文本 314
17.3.1 设置字体:QFont 315
17.3.2 绘制文本 316
17.4 绘制图像 317
17.5 小结 319
第18章 多线程编程 320
18.1 线程概述 320
18.1.1 线程的定义与分类 320
18.1.2 多线程的优缺点 321
18.2 QTimer:计时器 322
18.3 QThread:线程类 325
18.3.1 线程的实现 325
18.3.2 线程的生命周期 327
18.3.3 线程的应用 328
18.4 小结 330
第19章 PyQt5程序的打包发布 331
19.1 安装Pyinstaller模块 331
19.2 打包普通Python程序 332
19.3 打包PyQt5程序 333
19.4 打包资源文件 335
19.5 小结 336
第4篇 项目实战
第20章 学生信息管理系统(PyQt5 MySQL PyMySQL模块实现) 338
20.1 需求分析 338
20.2 系统设计 338
20.2.1 系统功能结构 339
20.2.2 系统业务流程 339
20.2.3 系统预览 340
20.3 系统开发必备 341
20.3.1 系统开发环境 341
20.3.2 系统组织结构 341
20.4 数据库设计 342
20.4.1 数据库结构设计 342
20.4.2 数据表结构设计 342
20.4.3 视图设计 343
20.5 公共模块设计 344
20.5.1 模块导入及公共变量 344
20.5.2 打开数据库连接 345
20.5.3 数据的增删改 345
20.5.4 数据的查询方法 346
20.6 登录模块设计 346
20.6.1 登录模块概述 346
20.6.2 模块的导入 347
20.6.3 登录功能的实现 347
20.6.4 退出登录窗体 348
20.6.5 在Python中启动登录窗体 348
20.7 主窗体模块设计 349
20.7.1 主窗体概述 349
20.7.2 模块导入及窗体初始化 349
20.7.3 在主窗体中打开其他功能窗体 350
20.7.4 显示当前登录用户和登录时间 351
20.8 年级设置模块设计 351
20.8.1 年级设置模块概述 351
20.8.2 模块的导入 351
20.8.3 窗体加载时显示所有年级信息 352
20.8.4 年级信息的添加 352
20.8.5 年级信息的修改 353
20.8.6 年级信息的删除 354
20.9 学生信息管理模块设计 355
20.9.1 学生信息管理模块概述 355
20.9.2 根据年级显示对应班级 355
20.9.3 学生信息的查询 356
20.9.4 添加学生信息 357
20.9.5 根据选中编号显示学生详细信息 358
20.9.6 修改学生信息 358
20.9.7 删除学生信息 359
20.10 学生信息查询模块设计 359
20.10.1 学生信息查询模块概述 360
20.10.2 学生信息查询功能的实现 360
20.11 小结 361