Pregunta Basica

Alguien me podria decir si son lo mismo estos dos fragmentos de codigo.

1)
QWidget *w= new QWidget;
QVBoxLayout *L = new QVBoxLayout(w);

2)
QWidgetw *w= new QWidget;
QVBoxLayout *L = new QVBoxLayout;
w->setLayout(w);

No hacen lo mismo

El primer fragmento crea un widget en memoria dinámica, y luego crea un layout vertical que es hijo del primer widget. El segundo fragmento crea un nuevo widget, y luego crea un layout vertical que se establece en la última línea como el layout central del widget que creamos al principio.

Hay que distinguir entre 'ser hijo' de un widget (cuando el widget padre se borra, todos sus hijos son borrados con él), y 'ser heredado' (la clase con la que trabajamos es una subclase de la clase principal). Igualmente, no es lo mismo asignar un layout a un widget (el layout se dibujará con el widget, al que llamaremos widget contenedor, y se encargará de redimensionar automáticamente los widgets asignados a sus celdas con respecto a las dimensiones del widget contenedor) que crear un layout hijo de un widget.

¡Un saludo!

Graciela

Mas que claro.

saludos

Anuncios Google