我在pyqt docs中读到,如果parent为None,则QWidget将成为一个窗口。但是在我的主要小部件中,我创建了几个QWidget子类而没有传递父参数,它工作正常:
widget = MyWidget()
layout = QVBoxLayout()
layout.addWidget(widget)
self.setLayout(layout)
这是如何工作的,以及父参数究竟是什么?
答案 0 :(得分:2)
当您使用setLayout
时,布局会自动成为分配给它的小部件的子代:
http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#setLayout
因此,您发现的内容似乎不仅仅是parent
的问题,而是setLayout
的一个功能。请注意QLayout
不是QWidget
,因此永远不会成为一个独立的窗口 - 它被迫坐在内存中等待粘贴到小部件。