'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'報錯解決方案

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章