Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x PyQt5 returnPressed.connect";找不到引用';连接';“在功能上”;_Python 3.x_Pycharm_Pyqt5 - Fatal编程技术网

Python 3.x PyQt5 returnPressed.connect";找不到引用';连接';“在功能上”;

Python 3.x PyQt5 returnPressed.connect";找不到引用';连接';“在功能上”;,python-3.x,pycharm,pyqt5,Python 3.x,Pycharm,Pyqt5,这只是一个有点迂腐的问题,但我在PyCharm中得到了一个“在函数中找不到引用‘connect’”的警告。(与我的returnPressed.connect相关)这只是一个PyCharm bug还是该函数已被弃用,我无法在网上找到有关该函数的信息 我只得到这个。连接错误的“返回按下”所有其余的都很好。 这是我唯一剩下的警告,让我烦透了 class Login(QWidget): switch_window = QtCore.pyqtSignal() def __init__(s

这只是一个有点迂腐的问题,但我在PyCharm中得到了一个“在函数中找不到引用‘connect’”的警告。(与我的returnPressed.connect相关)这只是一个PyCharm bug还是该函数已被弃用,我无法在网上找到有关该函数的信息

我只得到这个。连接错误的“返回按下”所有其余的都很好。 这是我唯一剩下的警告,让我烦透了

class Login(QWidget):
    switch_window = QtCore.pyqtSignal()

    def __init__(self):
        QtWidgets.QWidget.__init__(self)
        ...

        self.password = QLineEdit(self)
        self.password.setGeometry(QRect(50, 368, 200, 25))
        self.password.setFont(QtGui.QFont("Times", 13))
        self.password.setAlignment(QtCore.Qt.AlignCenter)
        self.password.setEchoMode(QLineEdit.Password)
        self.password.setStyleSheet("QLineEdit {border-radius: 10px}")
        self.password.setPlaceholderText("Password")
        self.password.returnPressed.connect(self.authenticate)
        ...

    def authenticate(self):
        ...
        self.switch_window.emit()
        ...

我也有这种奇怪的警告。它也会让我感到困扰,因为我的代码工作得非常好(同样在使用pyinstaller的导出版本中,所以它的有效性不依赖于IDE)。 因此,我完全忽略它,我认为你可以这样做。我完全同意musicamante的评论

然而,为了完整性起见,这里是我更透彻的分析

以下是我的两个示例,其中connect在PyCharm Community 2020.3.3(Python 3.9和PyQt5)中产生以下警告:

上述两种情况都会触发以下警告消息:

Cannot find reference 'connect' in 'function | pyqtBoundSignal'
经过一些研究,我发现显示这样的警告是因为信号对象实际上是pyQtBoundSignal,而不是pyQtSignal。也许这种微妙之处只在PyQt5中表现出来? 我能找到的唯一区别是,当信号是实例的参数(从init()中创建)时,会创建一个“绑定”pyqtSignal,为了将其保持为“常规”信号(将在没有警告的情况下连接),我需要将其实现为类属性(在init()之前)

因此,为了完全消除您的警告,除了向JetBrains(PyCharm editor)发出错误报告之外,我看到的唯一一件事是覆盖您要连接其信号的类,并确保这些信号在那里声明为类属性,而不是实例属性。
不过,这太过分了。

根据当前的文档(和源代码),
returnPressed
没有被弃用,我怀疑它永远不会被弃用。可能和你有关?也就是说,据我所知,这只是一个警告,你可以忽略它,特别是如果它与上述报告有关的话。简单方法:当代码在IDE之外运行时,是否会出现警告?如果不是,那可能就不重要了。
Cannot find reference 'connect' in 'function | pyqtBoundSignal'