说明:
为信号连接槽函数, 在信号激发时实现对槽函数的调用.
作用:
一个信号可以绑定多个槽函数, 实现一对多的激发效果.
信号也可以连接其他的信号.
跨线程时, 必须使用信号进行参数传递.
from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot
class TestSignal(QObject):
# 信号必须定义为类的属性
# 参数类型 int str list dict
signal = pyqtSignal(int, str)
def __init__(self):
super().__init__()
def show1(v1, v2):
print(v1, v2)
def show2(v1, v2):
print(v2, v1)
if __name__ == '__main__':
test = TestSignal()
# 连接槽函数
test.signal.connect(show1)
test.signal.connect(show2)
# 激发信号
test.signal.emit()
# 断开连接
test.signal.disconnect(show2)
# 断开全部连接
test.signal.disconnect()
槽装饰器
非必要, 目的是将Python方法显式标记为Qt槽,并为其指定C++签名
意义未明确
@PyQt5.QtCore.pyqtSlot(参数类型)
def function(value):
pass