PyQt5 信号与槽机制

pyqt5 核心有两大优势:一个是业务逻辑和显示逻辑分离,二是信号与槽机制。

昨天,使用Pyqt5 对之前写的一个抖音视频无水印下载程序进行了重写。添加了GUI界面,并最终打包发布。通过这个练习,对pyqt5的这两大优势有了深入的理解。

业务逻辑和显示逻辑分离

显示界面,我使用Qt-Designer进行设计。然后,使用pyuic5命令将 “.ui” 文件转换为 “.py” 文件。该文件就是显示逻辑程序文件。

每次更新界面设计的时候,只要控件对象Object名称不变。那么只需要重新编译 “.ui” 文件,将新的 “.py” 文件进行替换即可。而不需要重写业务逻辑文件。

信号与槽机制

Pyqt5 界面设计的核心逻辑就是信号与槽机制。下面这张图清晰的表述了该机制。

通过按下按钮、输入文本等控件动作Connect连接动作函数。而动作函数emit发射信号。信号则基于pyqtSignal类进行创建。最后,创建 Slot 槽函数响应处理信号。

这其中关键的是动作函数和Slot槽函数。动作函数的主要作用是emit 发射信号和传递所需的参数。发射的信号可以是带参数的。而Slot槽函数则完成响应信号、接收参数和后续的一些处理动作。

程序设计的流程是:

1、定义信号

2、关联信号和相应的槽函数(定义槽函数名称)

3、关联动作和动作函数(定义动作函数名称)

4、创建动作函数

5、创建槽函数

其中2和3在initUI界面初始化函数中,定义完成。

业务逻辑程序:

其中,从DouyinVideoFx 文件导入下列函数:

  from DouyinVideoFx import GetRealUrl,pageGet,get_ids,check_line,DouyinDown

最终成品

 最终完成的作品如下图,可以通过该工具对分享的抖音链接进行地址解析,下载无水印抖音视频。

 

posted @ 2022-03-20 12:21  白云沧海  阅读(226)  评论(0编辑  收藏  举报