我們在用圖形界面的時候,會用到信號,如果是在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)