2016-04-15 17 views
0

Ich lese in der pyqt docs, dass, wenn Eltern keiner ist, das QWidget ein Fenster wird. Aber in meinem Haupt-Widget erstelle ich mehrere QWidget Subklassen ohne das übergeordnete Argument übergeben, und es funktioniert gut:Was ist das übergeordnete Argument für?

widget = MyWidget() 
layout = QVBoxLayout() 
layout.addWidget(widget) 
self.setLayout(layout) 

Wie funktioniert das und was ist das übergeordnete Argument wirklich?

Antwort

2

Wenn Sie setLayout verwenden, wird das Layout gemacht automatisch ein Kind des Widgets, dem sie zugeordnet ist:

http://pyqt.sourceforge.net/Docs/PyQt4/qwidget.html#setLayout

daher, was Sie entdeckt haben, scheint kein Problem zu sein mit parent im Allgemeinen, aber ein Merkmal von setLayout. Beachte, dass QLayout kein QWidget ist, also wird niemals ein unabhängiges Fenster erstellt - es wird gezwungen, dort im Speicher zu sitzen und darauf zu warten, an ein Widget geklebt zu werden.

Verwandte Themen