clicked.connect()错误

发布于 2021-01-29 18:00:41

我正在使用Window 10,PyCharm-Python 3.5.2

我正在尝试执行的操作:如果单击了PB1(按钮1),请打开一个新窗口。

问题:我得到一个错误

 self.PB1.clicked.connect(self.Soft_Memory())
TypeError: argument 1 has unexpected type 'NoneType'

由于我定义了Soft_Memory(),因此我看不到为什么Soft_Memory()为NoneType。虽然在编辑器上,“。connect”突出显示并表示在“功能”中找不到引用“
connect”

代码如下。我已经删除了部分代码,以便更好地查看。如果有人需要完整的代码,请发表评论。

间谍

class SM_Window(QMainWindow, QWidget):
    def __init__(self, parent=None):
        super().__init__()
        self.initU()

    def initU(self):
        self.setWindowTitle("SM_Window")
        self.setGeometry(10, 30, 850, 850)

UI.py

import SM

class MainWindow(QMainWindow, QWidget):

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.initUI()

    def Soft_Memory(self):
        self.SF = SM.SM_Window()
        self.SF.show()

    def Buttons(self):
        #Button for SF
        self.PB1 = QPushButton("POP", self)
        self.PB1.setToolTip("POPOPOPOPOPOP")
        self.PB1.move(100, 100)

    def Signal_to_Slot(self):
        self.PB1.clicked.connect(self.Soft_Memory())

    def initUI(self):
        self.setWindowTitle("UI")
        self.setGeometry(850, 850, 850, 850)
        self.Buttons()
        self.Signal_to_Slot()
        self.showMaximized()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = MainWindow()
    sys.exit(app.exec())
关注者
0
被浏览
187
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    connect()方法需要一个可调用的参数。在编写时,self.Soft_Memory()您正在对该方法进行调用,而该调用的结果(None因为您没有显式返回任何内容)将传递给connect()

    您要传递对方法本身的引用。

    self.PB1.clicked.connect(self.Soft_Memory)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看