我不会在GUI中做很多工作,但我决定偶尔使用PyQt4转向PyQt5。我的IDE给了我一些__init__
函数的警告,特别是QWidget和QMainWindow。
如果查看IntelliSense参数,您会发现parent
参数有默认值而flags
没有。 IDE告诉我flags
未填充,但是当我不提供时,没有任何反应。为什么会这样?
我使用的是Python 3.5。
答案 0 :(得分:3)
正确的签名是:
QMainWindow(parent: QWidget = None,
flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
因此,IDE中的IntelliSense似乎不知道如何正确解析类型提示(或根本不解析)。只有两个参数:parent
和flags
,两者都有默认值。
(注意:你永远不要将self.__class__
与super
一起使用,因为它可能会在某些情况下导致无限递归。总是传入子类作为第一个参数 - 除非你使用的是Python 3 ,在这种情况下,您可以省略所有参数。)
答案 1 :(得分:1)
安装pyQt5-stub可以解决此错误。