Python 单击。连接()错误

Python 单击。连接()错误,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,我正在开发windows10,python3.5.2 我想做的是:如果PB1(按钮1)点击,打开一个新窗口 问题:我得到一个错误 self.PB1.clicked.connect(self.Soft_Memory()) TypeError: argument 1 has unexpected type 'NoneType' 因为我定义了Soft_Memory(),所以我不明白为什么Soft_Memory()是非类型的。 尽管在编辑器上,.connect突出显示,并表示在“函数”中找不到引用

我正在开发windows10,python3.5.2

我想做的是:如果PB1(按钮1)点击,打开一个新窗口

问题:我得到一个错误

 self.PB1.clicked.connect(self.Soft_Memory())
TypeError: argument 1 has unexpected type 'NoneType' 
因为我定义了Soft_Memory(),所以我不明白为什么Soft_Memory()是非类型的。 尽管在编辑器上,.connect突出显示,并表示在“函数”中找不到引用“connect”

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

山猫

UI.py

connect()
方法需要一个可调用的参数。当您编写
self.Soft\u Memory()
时,您正在调用该方法,该调用的结果(
None
,因为您没有显式返回任何内容)就是传递给
connect()
的内容

您希望传递对方法本身的引用

self.PB1.clicked.connect(self.Soft_Memory)
connect()
方法需要一个可调用的参数。当您编写
self.Soft\u Memory()
时,您正在调用该方法,该调用的结果(
None
,因为您没有显式返回任何内容)就是传递给
connect()
的内容

您希望传递对方法本身的引用

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

编写
self.Soft\u Memory()
时,使用括号调用该方法。您需要的是引用该方法:

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

编写
self.Soft\u Memory()
时,使用括号调用该方法。您需要的是引用该方法:

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

@DaveyH cks和@user3419537的答案是正确的,您应该使用该方法的引用,而不是调用它:

self.PB1.clicked.connect(self.Soft_Memory)
但是,您可能经常需要在这些函数上传递参数(我当然需要)。在这些情况下,如果需要使用args,可以通过使用


@DaveyH cks和@user3419537的答案是正确的,您应该使用该方法的引用,而不是调用它:

self.PB1.clicked.connect(self.Soft_Memory)
但是,您可能经常需要在这些函数上传递参数(我当然需要)。在这些情况下,如果需要使用args,可以通过使用


如果函数()具有“return something”,那么我是否可以使用self.functiun()?仅当“something”是可调用的。通常,您应该直接指定插槽,以明确连接的对象。如果函数()具有“return something”,则我可以使用self.functiun()?仅当“something”是可调用的。一般来说,您应该直接指定插槽,以明确您要连接的对象