pyqt5 改窗口名字_Python教程 | Pyqt5实战教程之操作交互处理,原来这么简单!

  • Post author:
  • Post category:python

PyQt5用来编写Python脚本的应用界面。本文详细介绍PyQt5教程之操作交互处理,并通过丰富的实战提高文章的可读性。在教程后面会附带PyQt5操作交互处理常见问题。

8424d87ba5c90d36940f9be65127c6ff.png

一、前言:

  • 不管在PyQt还是Qt开发中,信号和槽都是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。

  • 在我们所熟知的很多 GUI 工具包中,窗口小部件 (widget) 都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了。

  • 所有从 QObject 或其子类 ( 例如 Qwidget) 派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射 (emit) 出去,这就是对象所要做的全部事情,其不需要知道有没有人接收它发出去的信息。

  • 槽用于接收信号,但它们是普通的对象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不需要了解具体的通信机制。

  • 单个的槽可以和很多信号进行连接,同样,单个的信号与很多的槽进行连接,甚至于将一个信号与另外一个信号相连接也是可能的,这时无论第一个信号什么时候发射系统都将立刻发射第二个信号。总之,信号与槽构造了一个强大的部件编程机制。

二、知识补充

  • 在学习信号与槽相关的知识之前,我们先学习一些相关的名次和逻辑

  • 信号与槽通信过程中涉及到:信号(Signal)、槽(slot)、连接(connect)、动作事件(action)、发射(emit)、发送者、接受者。

三、自定义信号与槽

  • 有关信号与槽的使用我们就不多说了,在之前的案例说我们已经开始使用,本次我们说说如何自定义信号与槽呢?

  • 自定义信号的一般流程如下:

1、定义信号

2、定义槽函数

3、绑定信号和槽

4、发射信号

  • 我们再来看一段代码

bccea9a76fb87842cb6df95c2bbda49e.png

292f3df1e7d34bc3267d43fd45621889.png

  • 运行结果为:

f149da46f90744258341e8dede338c02.png

代码解析:

  • 易错点:定义的信号成员一定要在类执行init方法之前声明,否则会报错的哦,具体原因这里就不再深入,感兴趣的同学可以给我留言,一起讨论。

  • 如:signalempty = pyqtSignal(name=‘signalempty’); 定义一个无参数的信号、名字为signal_empty。

  • 然后我们声音一个槽函数,handletriggerempty,声明好之后调用connect进行连接,然后信号执行emit就可以发出信号了。

  • 是不是很简单呢?

  • 其实有些知识看似很复杂,一旦入门了,后面再学就很容易了。

9d73a5feaee14cd3ab04a43a026bffec.png


版权声明:本文为weixin_31572189原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。