br/>
初识篇
-
第1章 PyQt 6简介
1.1 PyQt 6、Qt 6、PySide 6之间的关系 /2
GUI框架Qt的简介
PyQt 6与Qt 6的关系
PyQt 6与PySide 6的关系
1.2 PyQt 6的组成及其扩展模块 /4
PyQt 6的组成
PyQt 6中的扩展模块
1.3 可以与PyQt 6结合使用的产品 /6
1.4 使用PyQt 6的注意事项
1.5 学习PyQt 6的建议
-
第2章 搭建开发环境
2.1 安装PyQt 6及其工具 /9
使用pip安装PyQt 6
使用pip安装pyqt6-tools
使用集成开发环境Anaconda安装PyQt 6
2.2 搭建基于Eric 7的PyQt 6开发环境 /11
安装及配置Eric 7
Eric 7的基本使用方法
在集成开发环境Anaconda下使用Eric 7
2.3 搭建基于VS Code的PyQt 6开发环境 /15
安装及配置VS Code
VS Code的简单使用
2.4 搭建基于PyCharm的PyQt 6开发环境 /17
安装及配置PyCharm
PyCharm的基本使用
-
第3章 上手PyQt 6
3.1 【实战】简单的PyQt 6程序――使用代码实现
实现一个简单的窗体
增加“退出”按钮
3.2 【实战】简单的PyQt 6程序――使用Qt设计师实现
初识Qt设计师
使用Qt设计师创建一个简单窗体
预览窗体并查看相关代码
增加“退出”按钮
将.ui文件转换成.py文件
图片的路径信息
3.3 【实战】更复杂一点――四则运算小游戏
-
=====入门篇
第4章 窗体设计基础
4.1 QWidget类――用户界面类的基类 /34
顶级窗体控件和子窗体控件
控件的绘制与尺寸
事件
方法与属性组
QWidget类的个性化设置
【实战】设计一个六角星窗体
4.2 QMainWindow类――主窗体
使用代码创建主窗体
使用Qt设计师创建记事本窗体
4.3 QDialog类――对话框
模态对话框与非模态对话框
默认按钮与“Esc”键
对话框返回值(模态对话框)
-
第5章 PyQt 6中的事件
5.1 事件体系 /49
事件的分发
事件处理程序
事件过滤器
5.2 事件类型 /53
5.3 【实战】事件的两个例子
龟兔赛跑小游戏
涂鸦板
-
第6章 信号与槽方法
6.1 信号与槽方法简介 /57
6.2 事件和信号与槽方法机制的共同点及区别 /58
6.3 内置信号与槽方法的使用方法 /58
默认参数内置信号与槽方法的使用方法
自定义参数内置信号与槽方法的使用方法
多控件内置信号与槽方法的使用方法
6.4 自定义信号与槽方法的使用方法 /63
无参数自定义信号与槽方法的使用方法
带参数自定义信号与槽方法的使用方法
6.5 带装饰器槽方法的使用方法 /67
6.6 实现界面与功能的分离 /69
采用Eric 7实现界面与功能的分离
采用单继承方式实现界面与功能的分离
多继承与单继承方式的对比
6.7 跨线程信号与槽方法的使用方法
6.8 多窗体值的传递 /74
使用信号与槽方法机制传递多窗体值
使用QSettings类传递多窗体值
-
第7章 布局管理
7.1 绝对位置 /78
7.2 布局系统 /79
QBoxLayout类――箱式布局
QGridLayout类――网格布局
QFormLayout类――表单布局
QStackedLayout类――堆栈布局
7.3 嵌套布局 /86
7.4 QSplitter类――分裂器控件
7.5 【实战】动态布局――设计一个简单的表单
7.6 在Qt设计师中实现布局 /92
水平和垂直布局
表单布局
网格布局
Spacer的应用
窗体布局的应用
-
第8章 常用控件
8.1 按钮类控件 /94
QAbstractButton类――抽象按钮
QPushButton类――普通按钮
QToolButton类――工具按钮
QRadioButton类――单选按钮
QCheckBox类――多选框
【实战】自制虚拟键盘
8.2 数字输入类控件 /110
QSpinBox类――整数输入框
QDoubleSpinBox类――小数输入框
8.3 选择类控件 /114
QComboBox类――下拉列表
QFontComboBox类――字体选择框
【实战】模拟QQ的登录方式
8.4 控制类控件 /124
QAbstractSlider类――抽象滑块
QSlider类――滑块
QDial类――圆形拨号盘
QScrollBar类――滚动条
QProgressBar类――进度条
8.5 时间和日期类控件 /133
QDate、QTime和QDateTime类
QDateTimeEdit、QDateEdit和QTimeEdit类
QCalendarWidget类――日历选择
【实战】日程提醒小工具
8.6 文本显示控件 /148
QLabel类――标签
【实战】简单红绿灯
QLCDNumber类――液晶显示屏
【实战】简单计算器
-
第9章 对话框相关类
9.1 QColorDialog类――颜色选择对话框 /161
QColorDialog类的基本使用方法
QColorDialog类的常用方法和信号
QColorDialog类的简单举例
9.2 QErrorMessage类――错误消息对话框 /163
9.3 QFileDialog类――文件选择对话框
QFileDialog类的常用方法和信号
文件选择对话框的创建
9.4 QFontDialog类――字体选择对话框 /167
QFontDialog类的基本使用方法
QFontDialog类的常用方法和信号
9.5 QInputDialog类――简单输入对话框
QInputDialog类的常用方法和信号
QInputDialog类的简单举例
9.6 QMessageBox类――消息对话框 /171
QMessageBox类的枚举值、常用方法和信号
QMessageBox类的基本使用方法
9.7 QProgressDialog类――进度对话框 /176
QProgressDialog类的常用方法和信号
QProgressDialog类的简单举例
9.8 QWizard类――引导对话框 /178
QWizard类的枚举值、常用方法和信号
QWizardPage类的基本使用方法
QWizard类的简单举例
9.9 QDialogButtonBox类――对话框按钮组合 /185
QDialogButtonBox类的常用方法和信号
QDialogButtonBox类的使用方法
QDialogButtonBox类的布局
-
第10章 文本输入类
10.1 QLineEdit类――单行文本框 /189
QLineEdit类的基本使用方法
QLineEdit类的枚举值、常用方法和信号
【实战】文本输入、密码输入、自动补全网址
10.2 QPlainTextEdit类――纯文本输入控件 /200
QPlainTextEdit类的基本使用方法
QPlainTextEdit类的常用方法和信号
QTextCursor类
QTextDocument类
【实战】简单记事本
10.3 QTextEdit类――富文本输入控件 /215
QTextEdit类的简介
QTextEdit类的常用方法和信号
【实战】AI问答小工具
-
=====进阶篇
-
第11章 PyQt 6中的容器
11.1 QToolBox类――工具箱控件 /230
QToolBox类的基本使用方法
QToolBox类的常用方法与信号
【实战】小工具箱
11.2 QTabWidget类――选项卡控件 /235
QTabWidget类的基本使用方法
QTabWidget类的常用方法与信号
【实战】多文本记事本
11.3 QStackedWidget类――堆栈窗体控件 /243
QStackedWidget类的基本使用方法
QStackedWidget类的常用方法与信号
【实战】猜数字的游戏
11.4 QDockWidget类――悬停窗体控件 /246
QDockWidget类的基本使用方法
QDockWidget类的常用方法与信号
QDockWidget类的简单举例
11.5 QMdiArea类――多窗体收纳 /250
QMdiArea类的基本使用方法
QMdiArea类的常用方法与信号
【实战】简单的发牌程序
-
第12章 高级控件
12.1 QListWidget类――列表型控件 /256
QListWidget类的基本使用方法
QListWidget类的常用方法和信号
QListWidgetItem类――列表型项目
【实战】模拟QQ好友界面
12.2 QTreeWidget类――树形结构控件 /266
QTreeWidget类的基本使用方法
QTreeWidget类的常用方法和信号
QTreeWidgetItem类――树形项目
【实战】模拟TIM界面 /268
12.3 QTableWidget类――表格型结构控件 /280
QTableWidget类的基本使用方法
QTableWidget类的常用方法和信号
QTableWidgetItem类――表格型项目
【实战】简单图书管理系统
-
第13章 PyQt 6中的视图模型设计模式
13.1 视图模型编程的概念――模型、视图、代理
13.2 QListView类――列表型视图 /305
QListView类的基本使用方法
QListView类的常用方法和信号
【实战】使用QListView类模拟QQ好友界面
13.3 QTreeView类――树形视图 /314
QTreeView类的基本使用方法
QTreeView类的常用方法和信号
【实战】使用QTreeView类模拟TIM界面
13.4 QTableView类――表格型视图 /324
QTableView类的基本使用方法
QTableView类的常用方法和信号
【实战】使用QTableView类实现多样式数据的呈现
-
第14章 PyQt 6中的多线程编程
14.1 线程 /336
线程的概念
线程与进程的区别
14.2 QTimer类――定时器 /337
QTimer类的基本使用方法
QTimer类的常用方法和信号
【实战】挑战记忆力小游戏
14.3 QThread类――线程的使用方法 /341
QThread类的基本使用方法
QThread类的常用方法和信号
【实战】AI问答工具升级版
-
第15章 PyQt 6中的图形处理
15.1 PyQt中的绘图系统 /350
QPainter类
QPen类
QBrush类
15.2 PyQt中的图像处理 /358
QPixmap类
QImage类
15.3 【实战】图像查看器 /362
-
第16章 PyQt中拖放的实现
16.1 拖放原理 /367
拖放操作的流程
拖放操作的数据
16.2 QDrag类――拖放操作的核心 /371
QDrag类的基本使用方法
QDrag类的常用方法和信号
16.3 【实战】数字合并小游戏 /372
-
第17章 PyQt 6中的动画处理
17.1 动画框架 /377
动画框架中涉及的类
QProperty-Animation类
QEasingCurve类
动画组类
17.2 【实战】赛车模拟小游戏 /382
程序功能
程序结构
程序实现
-
第18章 Graphics View框架――图形元素操作的框架
18.1 Graphics View框架 /383
Graphics View框架的主要概念
Graphics View框架的坐标体系
18.2 QGraphicsScene类――场景
QGraphicsScene类的基本使用方法
QGraphicsScene类的常用方法
18.3 QGraphicsView类――视图 /388
QGraphicsView类的基本使用方法
QGraphicsView类的常用方法
18.4 QGraphicsItem类――图元 /389
QGraphicsItem类的基本使用方法
QGraphicsItem类的常用方法
18.5 【实战】飞机碰撞大挑战 /391
-
第19章 PyQt 6窗体的美化
19.1 QSS /397
19.2 QSS语法及使用方法 /397
QSS语法
选择器类型及子控件的样式设置
伪状态
解决样式冲突
样式继承
在Qt设计师中设计样式
19.3 利用QSS自定义PyQt控件 /402
盒子模型
QSS支持的控件类型
QSS支持的控件属性
QSS支持的子控件
19.4 【实战】QSS应用――创建一个具有丰富外观的窗体
程序功能
程序结构
程序实现
QDarkStyleSheet
-
第20章 PyQt 6与数据库的联合使用
20.1 SQLite /410
安装SQLite
使用SQLite的命令行
使用SQLite的图形界面软件
20.2 PyQt 6与数据库的结合使用 /413
QSqlDatabase类――连接数据库
QSqlQuery类――数据库执行
20.3 【实战】简单图书管理系统Plus版 /419
程序功能和结构
程序实现
-
第21章 自定义简单网页浏览器
21.1 PyQt6-WebEngine /425
PyQt6-WebEngine的安装
PyQt6-WebEngine的简介
21.2 自定义简单网页浏览器涉及的常用类 /426
QWebEngine-View类
QWebEnginePage类
QWebEngineDownload Request类
21.3 【实战】自定义简单网页浏览器 /432
程序功能
程序结构
程序实现
-
第22章 打包PyQt程序 /449
22.1 PyInstaller /449
PyInstaller的安装
PyInstaller的工作原理
PyInstaller实操
22.2 auto-py-to-exe /456
auto-py-to-exe的安装
auto-py-to-exe的操作实例
22.3 Nuitka /457
Nuitka的简介
Nuitka的安装
Nuitka的操作实例
-
=====综合实例篇
第23章 综合案例――简单记账本
23.1 项目需求 /462
23.2 程序演示 /463
23.3 PyQt6-Charts /468
23.4 程序设计 /473
23.5 案例总结 /484
内容摘要
本书旨在引导具有一定Python基础的开发者学习PyQt 6的开发技能。本书不仅详细介绍了PyQt 6的基础知识,还深入探讨了进阶技巧。本书内容涵盖了PyQt 6的各个方面,从窗体设计基础到高级控件的使用,再到多线程编程和图形处理,都进行了深入浅出的讲解。每个章节都配有丰富的程序案例,如龟兔赛跑、涂鸦板、计算器、AI问答小工具、飞机碰撞大挑战等,让读者通过实际操作加深理解,提升实战能力。本书特别注重实践应用,最后一章提供的简单记账本综合案例既可以作为课程设计的参考,也可以作为毕业设计的参考。本书附带丰富的开发资源,包括代码库、MySQL 数据库驱动,以及开发工具等,为读者提供了全方位的学习支持。通过阅读本书,读者能够熟练掌握PyQt 6的开发技能,为未来的项目开发奠定坚实的基础。