千家信息网

python如何实现信号与槽的断开与连接

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,这篇文章主要介绍了python如何实现信号与槽的断开与连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。信号与槽的断开与连接有时候基于
千家信息网最后更新 2024年11月21日python如何实现信号与槽的断开与连接

这篇文章主要介绍了python如何实现信号与槽的断开与连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

信号与槽的断开与连接

有时候基于某些原因,想要临时或永久的断开某个信号与槽函数的连接,这就是要说的内容

一般把connect前面加上dis就是解除绑定的意思:即disconnect

实例如下

from PyQt5.QtCore import QObject,pyqtSignalclass SignalClass(QObject): #声明无参数的信号 signal1=pyqtSignal() #声明带一个int类型参数的信号 signal2=pyqtSignal(int) def __init__(self,parent=None):  super(SignalClass, self).__init__(parent)  #将signal1信号连接到两个槽函数  self.signal1.connect(self.sig1Call)  self.signal1.connect(self.sig2Call)  #将signal2信号连接到信号1  self.signal2.connect(self.signal1)  #发射信号  self.signal1.emit()  self.signal2.emit(1)  #断开信号与槽函数的关系  self.signal1.disconnect(self.sig1Call)  self.signal1.disconnect(self.sig2Call)  self.signal2.disconnect(self.signal1)  #绑定信号与槽函数  self.signal1.connect(self.sig1Call)  self.signal2.connect(self.sig1Call)  #信号发射  self.signal1.emit()  self.signal2.emit(1) #输出信号1发射 def sig1Call( self ):  print('signal-1 emit') #输出信号2发射 def sig2Call( self ):  print('signal-2 emit')if __name__ == '__main__': signal=SignalClass()

感谢你能够认真阅读完这篇文章,希望小编分享的"python如何实现信号与槽的断开与连接"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0