PyQt5 学习指南

目录

pyqt5

PyQt5视频课程

代码索引

控件

创建主窗口

主窗口居中

退出应用程序

创建主窗口(介绍窗口类型)

设置窗口和应用程序图标

为控件添加提示消息Tooltip

QLabel控件的基本用法

  • 垂直布局
  • QLable设置

Snipaste_2021-02-01_11-04-56

QLabel与伙伴关系

  • 热键 &

  • 栅格布局设置

    Snipaste_2021-02-01_11-11-17

QLineEdit控件与回显模式(EchoMode)

  • 表单布局

  • 4种回显模式

    Snipaste_2021-02-01_11-30-14

限制QLineEdit控件的输入(校验器)

  • 控制输入框的格式:如用户名只能包含数字加字母

  • 正则化表达式

    Snipaste_2021-02-01_11-38-27

使用掩码控制QLineEdit控件的输入

  • 掩码规则

Snipaste_2021-02-01_11-46-17

QLineEdit控件综合案例

  • 文本修改的信号和槽

  • 综合上面学习的QLineEdit控件的功能

    Snipaste_2021-02-02_14-25-22

使用QTextEdit控件输入多行文本

  • 通过QTextEdit获取文本(后台数据)
  • 通过QTextEdit显示文本

Snipaste_2021-02-02_14-54-26

按钮控件QPushButton

  • QPushButton

  • 利用Lambda进行传参并调用槽函数

    Snipaste_2021-02-02_15-27-52

单选按钮控件QRadioButton

  1. 利用self.send来获取信号

    Snipaste_2021-02-02_15-34-58

复选框控件QCheckBox

  • 默认选中状态、未选中状态、待选中状态

    Snipaste_2021-02-02_15-43-15

下拉列表控件QComboBox

  • currentIndexChanged信号默认会传递两个参数:控件本身和索引

    Snipaste_2021-02-02_18-19-32

滑块控件QSlider

Snipaste_2021-02-02_19-35-07

计数器控件QSpinBox

Snipaste_2021-02-02_19-40-07

对话框

使用QDialog显示通用对话框

Snipaste_2021-02-02_19-59-01

显示不同类型的消息对话框QMessageBox

  • 关于对话框

  • 错误对话框

  • 警告对话框

  • 提问对话框

  • 消息对话框

    Snipaste_2021-02-02_21-19-38

输入对话框QInputDialog

Snipaste_2021-02-02_21-29-53

字体对话框QFontDialog

Snipaste_2021-02-02_21-40-30

颜色对话框QColorDialog

Snipaste_2021-02-02_22-36-37

文件对话框QFileDialog

  • 打开图像并显示

  • 打开文本并显示

    Snipaste_2021-02-02_22-43-34

绘图

在窗口上绘制直线

Snipaste_2021-02-03_11-12-42

用像素点绘制正弦曲线

Snipaste_2021-02-03_11-31-19

绘制不同类型的直线

Snipaste_2021-02-03_11-36-35

绘制各种图形

  • 圆形

  • 椭圆

  • 矩形(正方形)

  • 多边形

  • 绘制图像

    Snipaste_2021-02-03_11-48-29

用画刷填充图形区域

Snipaste_2021-02-03_12-00-33

拖拽及剪切板

让控件支持拖拽动作

Snipaste_2021-02-04_22-29-39

使用剪贴板

Snipaste_2021-02-04_22-45-49

日历

日历控件

Snipaste_2021-02-04_22-53-15

设置不同风格的日期和时间

Snipaste_2021-02-05_15-11-41

日期和时间控件的高级操作

  • 设置或获取时间

菜单

创建和使用菜单

Snipaste_2021-02-05_15-23-34

创建和使用工具栏

Snipaste_2021-02-05_15-36-19

创建和使用状态栏

Snipaste_2021-02-05_15-39-35

打印机

使用打印机

显示打印对话框

Snipaste_2021-02-05_16-23-00

数据显示

显示二维表数据(QTableView控件)

Snipaste_2021-02-05_17-00-26

显示列表数据(QListView控件)

Snipaste_2021-02-05_17-01-50

扩展的列表控件(QListWidget)

Snipaste_2021-02-05_17-03-44

扩展的表格控件(QTableWidget)

Snipaste_2021-02-05_17-08-54

在表格单元格中放置控件

Snipaste_2021-02-05_17-14-26

在表格中快速定位到特定的行

Snipaste_2021-02-05_17-16-30

设置单元格字体和颜色

Snipaste_2021-02-05_17-17-54

按列排序

Snipaste_2021-02-05_17-19-41

设置单元格的文本对齐方式

Snipaste_2021-02-05_17-21-00

合并单元格

Snipaste_2021-02-05_17-22-38

设置单元格尺寸

Snipaste_2021-02-05_17-23-39

在单元格中实现图文混排的效果

Snipaste_2021-02-05_17-24-40

改变单元格中图片的尺寸

Snipaste_2021-02-05_17-26-13

在表格中显示上下文菜单

Snipaste_2021-02-05_17-27-39

树控件(QTreeWidget)的基本用法

Snipaste_2021-02-05_17-41-49

为树节点添加响应事件

Snipaste_2021-02-05_17-43-24

添加、修改和删除树控件中的节点

Snipaste_2021-02-05_17-44-33

QTreeView控件与系统定制模式

Snipaste_2021-02-05_19-12-39

容器

选项卡控件:QTabWidget

Snipaste_2021-02-05_22-43-23

堆栈窗口控件(QStackedWidget)

Snipaste_2021-02-05_23-07-15

停靠控件(QDockWidget)

Snipaste_2021-02-05_23-32-08

容纳多文档的窗口

Snipaste_2021-02-08_22-22-08

[滚动条控件(QScrollBar)](pyqt5/ScrollBar.py at master · zhgqcn/pyqt5 · GitHub)

Snipaste_2021-02-08_22-35-00

多线程

[动态显示当前时间QTimer](pyqt5/ShowTime.py at master · zhgqcn/pyqt5 · GitHub)

Snipaste_2021-02-08_23-42-15

[让程序定时关闭QTimer.singleShot](pyqt5/AutoCloseWindow.py at master · zhgqcn/pyqt5 · GitHub)

Snipaste_2021-02-08_23-46-49

[使用线程类(QThread)编写计数器](pyqt5/Counter.py at master · zhgqcn/pyqt5 · GitHub)

  • 自定义信号

    Snipaste_2021-02-09_00-17-26

web交互

用Web浏览器控件(QWebEngineView)显示网页

  • Python+JavaScript+HTML5+CSS 混合开发

    Snipaste_2021-02-09_11-21-13

装载本地Web页面

Snipaste_2021-02-09_11-23-45

显示嵌入Web页面

Snipaste_2021-02-09_11-25-18

PyQt5调用JavaScript代码

  • PyQt5 <-> JavaScript 互相调用数据

    Snipaste_2021-02-09_11-40-24

JavaScript调用Python函数计算阶乘

  • Python <-> JavaScript 互相调用数据

    Snipaste_2021-02-09_11-51-47

布局

绝对布局

Snipaste_2021-02-09_14-29-04

水平盒布局(QHBoxLayout)

Snipaste_2021-02-09_14-30-19

设置控件的对齐方式

Snipaste_2021-02-09_14-33-28

垂直盒布局(QBoxLayout)

Snipaste_2021-02-09_14-34-24

设置伸缩量(addStretch)

让按钮永远在窗口右下角

Snipaste_2021-02-09_14-43-14

栅格布局:实现计算器UI

Snipaste_2021-02-09_14-48-12

栅格布局:表单设计

Snipaste_2021-02-09_14-56-59

表单布局(QFormLayout)

Snipaste_2021-02-09_14-58-33

拖动控件之间的边界(QSplitter)

Snipaste_2021-02-09_15-03-19

信号与槽

信号(Signal)与槽(Slot)

Snipaste_2021-02-09_15-38-14

自定义信号

  • 信号与槽的连接与断开

可以传递多个参数的信号

为类添加多个信号

信号槽N对N连接与断开连接

为窗口类添加信号

Snipaste_2021-02-09_17-31-29

多线程更新UI数据(在两个线程中传递数据)

Snipaste_2021-02-09_17-39-22

信号与槽自动连接

使用Lambda表达式为槽函数传递参数

  • 可用于向槽函数传递参数

使用Partial对象为槽函数传递参数

Override(覆盖)槽函数

多窗口交互(1):不使用信号与槽

多窗口交互(2):使用信号与槽

窗口

窗口、绘图与特效:设置窗口风格

  • 设置窗口中控件的风格
Snipaste_2021-02-10_15-26-37

设置窗口样式(主要是窗口边框、标题栏以及窗口本身的样式)

Snipaste_2021-02-10_15-31-18

用代码控制窗口的最大化和最小化

项目实战:实现绘图应用

QSS基础

Snipaste_2021-02-10_17-44-26

使用QSS选择器设置控件样式

Snipaste_2021-02-10_18-03-21

QSS子控件选择器

Snipaste_2021-02-10_18-15-31

窗口、绘图与特效:设置窗口风格

3种方式设置窗口背景色和背景图片

实现不规则窗口(异形窗口)

不规则窗体的动画实现

装载Gif动画

使用QSS为标签和按钮添加背景图

Snipaste_2021-02-10_19-57-01

缩放图片

Snipaste_2021-02-10_19-58-35

创建透明窗口

装载QSS文件

用动画效果改变窗口尺寸

用动画效果一不同速度移动窗口

扩展

使用Pyinstaller打包PyQt5应用

操作SQLite数据库

  • DB Browser for SQLite 工具查看数据库

使用可视化的方式对SQLite数据库进行增、删、改、查操作

Snipaste_2021-02-10_23-05-18

分页显示数据

Snipaste_2021-02-10_23-06-01

使用PyQtGraph绘图

Snipaste_2021-02-10_23-08-08

实战

天气查询

Snipaste_2021-02-10_23-13-38

原文地址:https://www.cnblogs.com/zgqcn/p/14396977.html