2016-11-27 106 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,在這種情況下你可以省略所有參數)。