我们在用图形界面的时候,会用到信号,如果是在Pyqt5中使用信号,出现这种报错,从我自己目前情况总结有两种。
1.定义信号位置出错。例如我们在定义信号的时候,可能定义在初始化中了,而正确的定义是在类中定义成属性。
#错误示范
class Crawl_spiderPane(QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
# 定义信号位置错误!!!
show_infoes_signal = pyqtSignal(str)
#正确示范
class Crawl_spiderPane(QWidget,Ui_Form):
#应在类中定义
show_infoes_signal=pyqtSignal(str)
def __init__(self):
super().__init__()
self.setupUi(self)
2.接收信号连接槽函数写的位置不对。(这个是自己界面调用自己信号要注意的,如果是跨界面就不需要注意这个情况),正确的信号接收应该是在init函数中,不能在类外或者在类中定义成属性。以下是正确的示范。
class Crawl_spiderPane(QWidget,Ui_Form):
#正确定义信号位置
show_infoes_signal=pyqtSignal(str)
def __init__(self):
super().__init__()
self.setupUi(self)
# 正确接收信号位置(自己界面使用自己界面信号,跨界面不存在这种问题)
self.show_infoes_signal.connect(self.show_infoes)