当前位置:网站首页 > 技术博客 > 正文

pyqt5怎么学



PyQt5保姆级教程-- 从入门到精通

主要内容:

1 Qt Designer 2 PyQt5基本窗口控件(QMainWindow、Qwidget、Qlabel、QLineEdit、菜单、工具栏等) 3 PyQt5高级组件(QTableView、QListView、容器、线程等) 4 PyQt5布局管理(QBoxLayout、QGirdLayout、QFormLayout、嵌套布局等) 5 PyQt5信号与槽(事件处理、数据传递等) 6 PyQt5图形与特效(定制窗口风格、绘图、QSS与UI美化、不规则窗口、设置样式等) 7 PyQt5扩展应用(制作PyQt5安装程序、数据处理、第三方绘图库在PyQt5中的应用、UI自动化测试等)

搭建PyQt5开发环境

工具:

Python

PyQt5模块

PyCharm

在PyCharm里面安装PyQt5

 
  

在PyCharm里面安装Qt的工具包

 
  

在安装tools时,报如下错误:

1.pip install PyQt5-tools安装失败
 
  

解决办法:

第一步:

将加入为即可

 
  

换个思路

重启电脑,继续输入第一条命令安装

在这里插入图片描述

原因分析,可能占用了进程。

2.配置Qt Designer

在这里插入图片描述

 
  
3.配置PyUIC

在这里插入图片描述

 
  
4.配置Pyrcc

在这里插入图片描述

 
  

展示效果如下:

在这里插入图片描述

5.ui转py的过程:

1.点击EXternal Tools里面的QTDesigner,会跳转到QT界面,

在这里插入图片描述

拖动组件,调整好界面,保存为first文件,它会默认生成first.ui文件

在这里插入图片描述

选中文件,鼠标右击,打开扩展,选择PyUIC,它会生成.py文件

在这里插入图片描述

在这里插入图片描述

将.ui文件转化为.py文件的命令行方法:

 
  
6.开发第一个基于PyQt5的桌面应用

必须使用两个类: QApplication和QWidget。都在PyQt5.QtWidgets。

第一个类表示应用程序,第二个类表示窗口

在这里插入图片描述

输入如下代码:

 
  

效果如下:

在这里插入图片描述

也可以在命令行运行

 
  
7.基本操作

在这里插入图片描述

左侧是可以选择的组件,右侧可以设定属性值,设置完成之后,可以在窗体选择预览,选择查看c++和python代码。

8.在QtDesigner中使用水平布局(Vertical Layout)

在这里插入图片描述

两种方式:

(1)先移组件,再布局。

放置五个按钮,让这五个按钮等宽的,水平的排列

(全部选中–>鼠标右键–>布局–>水平布局 预览)

在这里插入图片描述

预览:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(2)先布局,再移组件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

生成demo1.ui文件

在这里插入图片描述

转成demo2.py文件,转成py文件,才能在程序里面调。

生成的代码如下:

 
  

如何在程序里面调用,先新建一个Run_demo1.py文件

代码如下:

 
  

运行:

在这里插入图片描述

弹出如下窗口:

在这里插入图片描述

此时出现了一个小问题:

在这里插入图片描述

如何解决: (将此目录生成源代码目录)

在这里插入图片描述

设置完成之后,等待加载完成,导入文件名底下的红线消失

在这里插入图片描述

9.在QtDesigner中使用垂直布局(Horizontal Layout)

在这里插入图片描述

和水平布局的操作类似,也有两种布局方式:

(1) 先移动组件,再布局

在这里插入图片描述

(2) 先布局,再移动组件

在这里插入图片描述

点击保存,生成垂直布局文件demo2.ui

在这里插入图片描述

右键demo2.ui,生成demo2.py文件

在这里插入图片描述

demo2.py的代码如下:

 
  

在python程序里面调用,新建Run_demo2.py文件

代码如下:

 
  

运行程序:

在这里插入图片描述

10.在QtDesigner里面同时创建垂直布局和水平布局

在这里插入图片描述

新建一个 main window,点击 创建

在这里插入图片描述

在布局的时候,windows里面,可以通过ctrl+上下左右进行微调。

在这里插入图片描述

在这里插入图片描述

文件保存,命名为demo3.ui文件,同样用拓展工具,生成demo3.py文件。

在这里插入图片描述

同样,新建运行文件Run_demo3.py文件,代码如下:

 
  

运行代码,结果如下:

在这里插入图片描述

11.在QtDesigner中同时使用栅格布局(Grid Layout)

在这里插入图片描述

拖放四个按钮之后,选中栅格布局

在这里插入图片描述

选中之后,效果如下:

在这里插入图片描述

拖拽边角,可以放大:

在这里插入图片描述

练习:利用栅格布局实现计算器数字区域

拖动button键调整好位置,全选之后选中布局,再选栅格布局

在这里插入图片描述

点击栅格之后,效果如下:

在这里插入图片描述

保存,生成demo4.ui文件

同样进行上述操作,转成demo4.py文件,新建Run_demo4.py文件,代码如下:

 
  

效果如下:

在这里插入图片描述

栅格布局的注意点:摆放控件要尽可能的整齐,这样系统才会正确的识别。

栅格布局和水平布局,垂直布局一样,可以后期添加控件。

12.向栅格布局中拖动控件

在这里插入图片描述

13.在QtDesigner中使用表单布局(Form Layout)

新建一个 main window,点击 创建

在这里插入图片描述

选择需要的控件,进行如下操作:

在这里插入图片描述

在这里插入图片描述

调整好布局,保存文件为demo5.ui

在这里插入图片描述

利用pyUIC插件,生成python代码调试

在这里插入图片描述

创建Run_demo5.py文件,执行代码如下:

 
  

效果如下:

在这里插入图片描述

14.在容器中完成布局

跟上面一样,新建一个MainWindow,添加对应的组件,鼠标右键点击,变形为对应的容器。

在这里插入图片描述

在这里插入图片描述

同理,生成demo6.py文件,新建Run_demo6文档,添加代码

 
  

运行程序

在这里插入图片描述

15.在QtDesigner中使用绝对布局

跟上面一样,新建一个MainWindow,添加对应的组件,

在这里插入图片描述

同理,生成demo7.py文件,新建Run_demo7文档,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

15.在QtDesigner中使用分割线与间隔

跟上面一样,新建一个MainWindow,

在这里插入图片描述

新建4个按钮,设置水平间隔,新建3个按钮,设置垂直间隔

在这里插入图片描述

在A2和A3之间设立分割线,在B2和B3之间设立分割线

在这里插入图片描述

保存文件为demo8.ui ,转为demo8.py代码,新建Run_demo8.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

16.布局的最大尺寸和最小尺寸

默认状态下,它的尺寸可以自由调节,跟上面一样,新建一个MainWindow,

在这里插入图片描述

可以看到,原本这个bushButton控件最小宽高可以到0,最大宽高可以到

通过改变右侧栏的值,就可以设置它不小于多少,不大于多少。

16.尺寸策略(sizePolicy)

在这里插入图片描述

对于大多数控件来说,sizeHint(期望尺寸)是只可读的,也就是说,你布局的时候不管拖拽多大,最后输出的还是默认值

读取pushButton的期望尺寸:

 
  

在这里插入图片描述

即可以看到,一个pushButton的期望尺寸,宽是41,高度是28

在这里插入图片描述

在demo7里进行上面操作,还是得到一样的数值。

同理,也可以进行读取其他控件的操作,比如读取textBrowser的宽高,代码如下:

 
  

效果如下:

在这里插入图片描述

即可以看到:控件textBrowser的默认宽高分别为256和192。

同样,也可以看最小的期望尺寸,以pushButton为例,其代码如下:

 
  

还是以demo7.py测试

在这里插入图片描述

可以看到,对于大部分控件来说,它的期望尺寸和最小期望尺寸是一样的

在这里插入图片描述

为何使用尺寸策略:

就是因为拓展的组件无论如何拖拽大小,经过布局设置之后,会回到默认的大小,为了让布局更有个性,采用尺寸策略,可以改变组件的期望尺寸。如图:

在这里插入图片描述

练习,左侧放树,构造分栏效果

在这里插入图片描述

保存文档为demo9.ui,转为demo9.py代码,新建Run_demo9.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

17.在QtDesigner里面设置控件之间的伙伴关系

即控件关联之后,可以通过一个控件来控制另外一个控件

新建一个MainWindow,布局如下,保存为demo10.ui

在这里插入图片描述

接着:

在这里插入图片描述

如上图所示,水平布局后面的“H”为热键 ,Ctrl +1 为快捷键

​ 垂直布局后面的“V”为热键 ,Ctrl +2 为快捷键

热键:只有在这个菜单显示时,按“H”时,才会起作用。菜单关闭时,按“H”不起作用。“V”同理。

然后给demo10.ui文件的lable添加热键:

给姓名添加热键成:姓名(&A):

给年龄添加热键成:年龄(&B):

给邮箱添加热键成:邮箱(&C):

在这里插入图片描述

然后打开编辑伙伴,按住鼠标左键,选中lable指向Line Edit

在这里插入图片描述

然后选择编辑窗口部件,会切回到正常的部件

在这里插入图片描述

保存文件为demo10.ui ,转为demo10.py代码,新建Run_demo10.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

再添加三个lable试一下效果,删除掉原来的demo10.py文件,用新保存的demo10.ui去生成新的demo10.py文件,点击运行查看效果

在这里插入图片描述

果然,按住alt+a,alt+b,alt+c,alt+d,alt+e.alt+f分别在右边对应的的Line Edit里面有焦点光标。

拓展:
在这里插入图片描述

18.如何修改控件的Tab顺序

新建一个MainWindow,布局如下,在Edit里面,选中 编辑 Tab顺序,在控件前端就会出现序号,这个序号就是顺序

在这里插入图片描述

在这里插入图片描述

也可以选中从这里开始或者重新开始,依次点击形成顺序。

在这里插入图片描述

接下来选中统一的 Line Edit来演示

在这里插入图片描述

保存文档为demo11.ui,转为demo11.py代码,新建Run_demo11.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

按Tab 键,焦点光标就会按照指定的顺序在Line Edit内跳转

19.在QtDesigner中完成信号与槽的设置

信号(signal)与槽(slot)是Qt的核心机制,由于PyQt忠实的继承了Qt的所有特性,所有信号与槽也是PyQt的核心机制。

信号:是由对象或控件发射出去的消息。可以理解为按钮的单击事件。

当单击按钮时,按钮就会向外部发送单击的消息,这些发送出去的信号需要一些代码来拦截,这些代码就是槽

槽本质上是一个函数或者方法,信号可以理解为事件,槽可以理解为事件函数

信号与槽的设置:就是需要将信号和槽绑定

一个信号可以和多个槽绑定,一个槽可以拦截多个信号。

信号和槽绑定有两种方式,一种是用QtDesigner进行绑定,一种是在代码中进行绑定

(1)用QtDesigner进行信号和槽绑定

需求:单机按钮,关闭窗口

新建一个MainWindow,拖拽一个pashButton按钮,修改文本为“关闭窗口”

在Edit里选择编辑信号/槽,点击pashButton按钮向外拖拽,

在这里插入图片描述

在Edit里选择编辑信号/槽,点击pashButton按钮向外拖拽,松开鼠标,左栏选择clicked(),勾选左下角“显示从QWidget”继承信号和槽,右栏选择close(),然后点击右下角ok.

在这里插入图片描述

在Edit里面选择“编辑窗口部件”,对布局页面进行恢复。

在这里插入图片描述

在“窗体”里选择“预览于”,选择“Windows风格”

在这里插入图片描述

此时点击页面的“关闭窗口”,则页面就会关闭

在这里插入图片描述

练习

添加两个CheckBox进行如下操作:

在这里插入图片描述

在这里插入图片描述

给第一个CheckBox进行信号与槽的绑定

在这里插入图片描述

给第二个CheckBox进行信号与槽的绑定

在这里插入图片描述

在Edit里面选择"编辑窗口部件"进行恢复主窗口

在这里插入图片描述

恢复完成后,窗口如下:

在这里插入图片描述

预览效果如下:

在这里插入图片描述

取消勾选check box的选项,下面的line Edit视角效果也会相应的变换。

保存文档为demo12.ui,转为demo12.py代码,新建Run_demo12.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

拓展:

在这里插入图片描述

(2)用代码完成关闭主窗口

​ 见第23节

20 在QtDesigner中为窗口添加菜单和工具栏

一个窗口,应该拥有菜单栏,工具栏,状态栏

新建一个MainWindow,添加菜单栏,添加完成之后,也可以右键点击,选择移除,同理添加工具栏。

在这里插入图片描述

给菜单栏添加内容:

在这里插入图片描述

在”窗体“里选择预览,效果如下:

在这里插入图片描述

在菜单和工具条里面如何添加按钮?

不管是菜单还是工具条的按钮,是一个action的动作,添加步骤如下:

在这里插入图片描述

在"视图"里,选择动作编辑器

在这里插入图片描述

两个菜单自动生成两个动作,双击可用设置动作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

点击"ok"之后,主窗口变化如下:

在这里插入图片描述

保存文档为demo13.ui,转为demo13.py代码,新建Run_demo13.py,添加代码(代码如上,略作修改),PyCharm里运行如下:

在这里插入图片描述

21 创建主窗口

在这里插入图片描述

主窗口类型,有三种窗口

窗口类型 说明 QMainWindow 可以包含菜单栏、工具栏、状态栏和标题栏,是最常见的窗口形式 QDialog 是对话窗口的基类。没有菜单栏、工具栏、状态栏 QWidget 不确定窗口的用途,就使用QWidget

如下图所示,新建一个controls文件夹,在controls里面新建images文件夹用来装图片,在controls里面新建

FirstMainWin.py文件。

在这里插入图片描述

在FirstMainWin.py文件中,添加代码如下:

 
  

运行代码,效果如下:

在这里插入图片描述

五秒之后,页面效果如下:

在这里插入图片描述

22.让主窗口居中显示

计算窗口的左上角的坐标

移动左上角的坐标,带动整个窗口的移动。

左上角的横坐标就是窗口的左边距,左上角的纵坐标就是窗口的上边距到顶部的值

新建CenterForm.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

23.如何退出应用程序

可以通过关闭主窗口,由于整个程序只有一个窗口,关闭主窗口之后,应用程序就会退出,之前在第19节演示过

换个思路,通过代码,在窗口上添加一个pashButton,调用QApplication里面的click()方法,来实现退出应用程序,关闭所有窗口

在controls文件夹里,新建QuitApplication.py文件,添加下列代码

 
  

运行代码,效果如下:

在这里插入图片描述

点击“退出应用程序”

在这里插入图片描述

24.屏幕坐标系

在controls文件夹里,新建ScreenGeometry.py文件,添加下列代码

 
  

运行代码,效果如下:

在这里插入图片描述

点击窗口里面的“按钮”,效果如下:

在这里插入图片描述

分析代码:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

有些许误差是因为在windows下窗体有边框,在mac下窗体无边框。

25.设置窗口和应用程序图标

在controls文件夹里,新建IconForm.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

26.显示控件的提示信息

在controls文件夹里,新建Tooltip.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

拓展,给窗口添加一个按钮,并显示提示信息

 
  

效果如下:

在这里插入图片描述

在这里插入图片描述

27.QLabel控件的基本用法

PyQt5常用控件之一,QLable控件,常用来展示文本信息

控件方法 说明 setAlignment() 设置文本的对齐方式 setIndent() 设置文本缩进 text() 获取文本内容 setBuddy() 设置伙伴关系 setText() 设置文本内容 selectedText() 返回所选择的字符 setWordWrap() 设置是否允许换行

2.当鼠标单击QLabel控件时触发:linkActivated

在controls文件夹里,新建QLabelDemo.py文件,执行代码:

 
  

效果展示:
在这里插入图片描述

注意:调整好图片的尺寸,防止它跳出屏幕外

28.如何设置QLabel控件和其他控件的伙伴关系

在controls文件夹里,新建QLabelBuddy.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

28.QLineEdit控件与回显模式(EchoMode)

在controls文件夹里,新建QLineEditEchoMode.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

在这里插入图片描述

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

在controls文件夹里,新建QLineEditEValidator.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

在这里插入图片描述

29.使用掩码限制QLineEdit控件的输入
掩码 说明 A ASCⅡ字母字符是必须输入的(A-Z、a-z) a ASCⅡ字母字符是允许输入的,但不是必需的(A-Z、a-z) N ASCⅡ字母字符是必须输入的(A-Z、a-z、0-9) n ASCⅡ字母的允许输入的,但不是必需的(A-Z、a-z、0-9) X 任何字符都是必须输入的 x 任何字符都是允许输入的,但不是必需的 9 ASCⅡ数字字符是必须输入的(0-9) 0 ASCⅡ数字字符是允许输入的,但不是必需的(0-9) D ASCⅡ数字字符是必须输入的(1-9) d ASCⅡ数字字符是允许输入的,但不是必需的(1-9) # ASCⅡ数字字符或加减符号是允许输入的,但不是必需的 H 十六进制格式字符是必须输入的(A-F、a-f、0-9) h 十六进制格式字符是允许输入的,但不是必需的(A-F、a-f、0-9) B 二进制格式字符是必须输入 的(0,1) b 二进制格式字符是允许输入的,但不是必需的(0,1) > 所有的字母字符都大写 < 所有的字母字符都小写 ! 关闭大小写转换 使用""转义上面列出的字符

在controls文件夹里,新建QLineEditMask.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

30.QLineEdit控件综合案例

在controls文件夹里,新建QLineEditDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

31.使用QTextEdit控件输入多行文本

在controls文件夹里,新建QTextEdit.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

32.按钮控件(QPushButton)

在controls文件夹里,新建QPushButtonDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

33.单选按钮控件(QRadioButton)

在controls文件夹里,新建QRadioButtonDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

34.复选框控件(QCheckBox)

复选框控件也称为多选控件

在controls文件夹里,新建QCheckBoxDemo.py文件,执行代码:

 
  

效果展示

在这里插入图片描述

在这里插入图片描述

35.下拉列表控件(QComboBox)

在controls文件夹里,新建QComboBoxDemo.py文件,执行代码:

 
  

效果展示

在这里插入图片描述

在这里插入图片描述

36.计数器控件(QSpinBox)

在controls文件夹里,新建QSpinBoxDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

37.滑块控件(QSlider)

在controls文件夹里,新建QSliderDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

38.对话框(QDialog)

在controls文件夹里,新建QDialogDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

39.消息对话框(QMessageBox)

在controls文件夹里,新建QMessageBoxDemo.py文件,执行代码:

 
  

效果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

40.输入对话框(QInputDialog)

在controls文件夹里,新建QInputDialogDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

41.字体对话框(QFontDialog)

在controls文件夹里,新建QFontDialogDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

42.颜色对话框(QColorDialog)

在controls文件夹里,新建QColorDialogDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

43.文件对话框(QFileDialog)

在controls文件夹里,新建QFileDialogDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

44.绘制API:绘制文本

新建drawing文件夹,在drawing文件夹里新建DrawText.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

45.用像素点绘制正弦曲线

在drawing文件夹里新建DrawPoints.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

46.绘制不同类型的直线

在drawing文件夹里新建DrawMultiLine.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

47.绘制各种图形

在drawing文件夹里新建DrawAll.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

48.用画刷填充图形区域

在drawing文件夹里新建FillRect.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

49.让控件支持拖拽动作

新建drapclip文件夹,在drapclip文件夹里新建DrapDrop.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

bug:windows发生dragEnterEvent方法执行不了的问题,排查无果,待后期深入研究PyQt5之后再来填坑。

50.使用剪切板

在drapclip文件夹里新建ClipBoard.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

51.日历控件

新建calendar_time文件夹,在calendar_time文件夹里新建MyCalendar.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

52.输入各种风格的日期和时间

在calendar_time文件夹里新建DateTimeEdit1.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

拓展:

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

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

53.创建和使用菜单

在menu_toolbar_statusbar文件夹里新建Menu.py文件,执行代码:

 
  

效果展示:

54.创建和使用工具栏

在menu_toolbar_statusbar文件夹里新建Toolbar.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

55.创建和使用状态栏

在menu_toolbar_statusbar文件夹里新建StatusBar.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

56.使用打印机

如何将数据输出到打印机

新建printer文件,在printer文件夹里新建PrintSupport.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

57.显示打印对话框

在printer文件夹里新建PrintDialog.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

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

新建table_tree文件夹,在table_tree文件夹里新建TableView.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

59.显示列表数据(QListView控件)

在table_tree文件夹里新建ListView.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

60.扩展的列表控件(QListWidget)

在table_tree文件夹里新建ListWidget.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

61.扩展的表格控件(QTableWidget)

在table_tree文件夹里新建TableWidget.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

62.在单元格中放置控件

在table_tree文件夹里新建PlaceControlInCell.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

63.在表格中快速定位到特定的样式

在table_tree文件夹里新建DataLocation.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

64.设置单元格字体和颜色

在table_tree文件夹里新建CellFontAndColor.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

65.按列排序

在table_tree文件夹里新建ColumnSort.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

ps:windows上,因为DescendingOrder方法问题,只能显示上图效果,点击排序按钮后,退出。待后续解决。

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

在table_tree文件夹里新建CellTextAlignment.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

67.合并单元格

在table_tree文件夹里新建Span.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

68.设置单元格的尺寸

在table_tree文件夹里新建CellSize.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

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

在table_tree文件夹里新建CellImageText.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

70.改变单元格中图片的尺寸

在table_tree文件夹里新建CellImageSize.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

71.在表格中显示上下文菜单

在table_tree文件夹里新建TableWidgetContextMenu.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

72.树控件(QTreeWidget)

在table_tree文件夹里新建BasicTreeWidget.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

73.为树节点添加响应事件

在table_tree文件夹里新建TreeEvent.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

74.添加,修改和删除树控件中的节点

在table_tree文件夹里新建ModifyTree.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

75.QTreeView控件与系统定制模式

在table_tree文件夹里新建TreeView.py文件,执行代码:

 
  

效果展示:
在这里插入图片描述

76选项卡控件(QTableWidget)

新建containers文件夹,在containers文件夹里面新建TabWidgetDemo.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

77.堆栈窗口控件(QStakedWidget)

在containers文件夹里面新建QStakedWidget.py文件,执行代码:

 
  

效果展示:

windows环境不能展示,待后期填坑

78.停靠控件(QDockWidget)

在containers文件夹里面新建DockWidget.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

79.容纳多文档的窗口

在containers文件夹里面新建MultiWindows.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

80.滚动条控件(QScrollBar)

在containers文件夹里面新建ScrollBar.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

81.动态显示当前时间

涉及到PyQt5的多线程

新建multithread文件夹,在multithread文件夹里新建ShowTime.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

82.让程序定时关闭

在multithread文件夹里新建AutoCloseWindow.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

83.使用线程类(QThread)编写计数器

在multithread文件夹里新建Counter.py文件,执行代码:

 
  

效果展示:
在这里插入图片描述

84.用Web浏览器控制(QWebEngineView)显示网页

新建web文件夹,在web文件夹里新建WebEngineView.py文件,执行代码:

 
  

运行过程中,遇到了:No module named ‘PyQt5.QtWebEngineWidgets’

解决办法:

【方法一】 指定安装5.10.1版本的pyqt5

 
  

【方法二】 单独安装WebEngine,安装命令为:

 
  

效果展示:
在这里插入图片描述

85.装载本地Web页面

在web文件夹新建test.html文件,添加代码如下:

 
  

在web文件夹里新建LocalHTML.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

86.显示嵌入Web页面

在new文件里新建InnerHTML.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

总结:PyQt5支持的三种装载web页面的方式:

1.通过标准的QUrl

2.从本地装载Qurl.fromLocalFile(url)

3.用setHtml直接装载HTML

87.PyQt5调用JavaScript代码

在web文件夹里新建demo1.html文件,添加如下代码:

 
  

在web文件夹里新建PyQtCallJS.py文件,执行代码:

 
  

效果如下:

在这里插入图片描述

88.JavaScript调用PythonAPI计算阶乘

在web文件夹里新建qwebchannel.is文件,添加代码:

 
  

在web文件夹里新建h.html文件,添加代码:

 
  

在web文件夹里新建factorical.py文件,添加代码:

 
  

在web文件夹里新建PyFactorial.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

89.绝对布局

新建layout文件夹,在layout文件夹里面新建AbsoluteLayout.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

90.水平盒布局

在layout文件夹里面新建HBoxLayout.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

91.设置控件的对齐方式

在layout文件夹里面新建HBoxLayoutAlign.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

92.垂直盒布局

在layout文件夹里面新建VBoxLayout.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

92.设置伸缩量(addStretch)

在layout文件夹里面新建Stretch.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

在这里插入图片描述

93.让按钮永远在窗口的右下角

在layout文件夹里面新建RightBottomButton.py文件,执行代码:

 
  

效果展示:

在这里插入图片描述

未完待续…

  • 上一篇: iframe标签是什么
  • 下一篇: 左公子66微博
  • 版权声明


    相关文章:

  • iframe标签是什么2025-06-15 11:01:01
  • sudo切换root用户2025-06-15 11:01:01
  • 二叉树的先序,中序,后序遍历视频2025-06-15 11:01:01
  • 2pc和xa关系2025-06-15 11:01:01
  • linux 网卡绑定模式2025-06-15 11:01:01
  • 左公子66微博2025-06-15 11:01:01
  • nb-iot芯片哪些厂家2025-06-15 11:01:01
  • 86版五笔输入法下载安装2025-06-15 11:01:01
  • sshd.service start operation2025-06-15 11:01:01
  • 软件代码编写规范2025-06-15 11:01:01