'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)

 

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