默认参数后的PyQt5非默认参数?

时间:2016-11-27 23:14:44

标签: python pyqt5

我不会在GUI中做很多工作,但我决定偶尔使用PyQt4转向PyQt5。我的IDE给了我一些__init__函数的警告,特别是QWidget和QMainWindow。

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

我使用的是Python 3.5。

None

2 个答案:

答案 0 :(得分:3)

正确的签名是:

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

因此,IDE中的IntelliSense似乎不知道如何正确解析类型提示(或根本不解析)。只有两个参数:parentflags,两者都有默认值。

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

答案 1 :(得分:1)

安装pyQt5-stub可以解决此错误。