【问题标题】:PyCharm showing wrong parameter info for PyQt methodsPyCharm 显示 PyQt 方法的错误参数信息
【发布时间】:2016-11-27 23:14:44
【问题描述】:

我没有在 GUI 方面做很多工作,但我决定从偶尔使用 PyQt4 转向 PyQt5。我的 IDE 对某些 __init__ 函数发出警告,尤其是 QWidget 和 QMainWindow。

如果您查看 IntelliSense 的参数,您会发现 parent 参数具有默认值,而 flags 没有。 IDE 告诉我 flags 未填充,但是当我不提供它时,什么也没有发生。为什么会这样?

我使用的是 Python 3.5。

【问题讨论】:

    标签: python parameters pycharm pyqt5 qmainwindow


    【解决方案1】:

    正确的签名是这样的:

    QMainWindow(parent: QWidget = None,
                flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
    

    因此,您的 IDE 中的 IntelliSense 似乎不知道如何正确解析类型提示,或者需要安装 PyQt stub files。只有两个参数:parent 和 flags,它们都有默认值。

    (注意:你永远不应该将self.__class__ 与super 一起使用,因为它在某些情况下会导致无限递归。始终将子类作为第一个参数传入 - 除非你使用的是 Python 3,在这种情况下您可以省略所有参数)。

    【讨论】:

      【解决方案2】:

      安装 pyQt5-stubs 将修复此错误。

      【讨论】:

      • 这样就完美解决了问题。注意:对于不知道的人,我们正在谈论 Jetbrains 的 PyCharm IDE ;)
      • 感谢生锈!!!好的 ol' Rusty 又来了!
      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2021-03-11
      • 2021-05-05
      • 2016-07-25
      • 2013-08-20
      • 2019-02-03
      • 1970-01-01
      相关资源
      最近更新 更多