====== Parent-Objekte im Zusammenhang mit Layouts ======
===== Parent-Objekte von Layouts =====
Layouts werden direkt auf ihre Elternobjekte angewendet. Dadurch können wir den Aufruf von ''setLayout()'' weglassen. Im ''QGroupBox''-Beispiel haben wir dieses Feature bereits verwendet. Wichtig ist, dass das Elternobjekt bereits ein gültiges Widget ist, damit es nicht zu folgenden Fehlern kommt:
#include
#include
#include
int main( int argc, char *argv[] )
{
QApplication app( argc, argv );
QWidget *w;
QPushButton *button1, *button2;
QVBoxLayout *layout;
button1 = new QPushButton( "Button 1" );
button2 = new QPushButton( "Button 2" );
layout = new QVBoxLayout( w );
layout->addWidget( button1 );
layout->addWidget( button2 );
w = new QWidget();
w->show();
return app.exec();
}
Dieses Programm stürzt natürlich sofort ab, da in der Widget-Variable Speichermüll steht. \\
===== Parent-Objekte bei der Verwendung von Layouts =====
Layouts geben auch automatisch die Elternschaft über ein eingefügtes Widget an ihr eigenes Parent-Objekt weiter. Deshalb verursacht folgende Zeile, wie wir sie im Beispiel zu ''QGridLayout'' verwendet haben, kein Speicherleck:
layout->addWidget( new ... );
Der Speicher des Widgets wird von jenem Widget freigegeben, auf das das Layout angewendet wird.