2016-11-27 81 views
0

我在GUI中没有做很多工作,但我决定从PyQt4偶尔使用PyQt5。我的IDE给了我一些关于__init__函数的警告,特别是QWidget和QMainWindow。PyQt5默认参数后的非默认参数?

如果您查看智能感知的参数,您会看到parent参数具有默认值,而flags不具有。 IDE告诉我flags没有填充,但是当我没有提供时,没有任何反应。这是为什么发生?

我正在使用Python 3.5。

None

回答

2

正确的签名是这样的:

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

所以它看起来像你的IDE的IntelliSense不知道如何正确地解析类型提示(或全部)。只有两个参数:parentflags,它们都有默认值。 (注意:你不应该使用self.__class__super,因为它在某些情况下会导致无限递归。总是要传入子类作为第一个参数 - 除非你使用Python 3,在这种情况下你可以省略所有参数)。