QWidget :: setLayout: Intento de establecer QLayout “” en el Widget “”, que ya tiene un diseño

Estoy tratando de establecer el diseño de un widget manualmente a través del código (no en Designer), pero estoy haciendo algo mal, porque recibo esta advertencia:

QWidget :: setLayout: Intentando establecer QLayout "" en Widget "", que ya tiene un diseño

Y también el diseño está desordenado (la etiqueta está en la parte superior, en lugar de la parte inferior).

Este es un código de ejemplo que reproduce el problema:

<code>Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    QLabel *label = new QLabel("Test", this);
    QHBoxLayout *hlayout = new QHBoxLayout(this);
    QVBoxLayout *vlayout = new QVBoxLayout(this);
    QSpacerItem *spacer = new QSpacerItem(40, 20, QSizePolicy::Fixed);
    QLineEdit *lineEdit = new QLineEdit(this);
    hlayout->addItem(spacer);
    hlayout->addWidget(lineEdit);
    vlayout->addLayout(hlayout);
    vlayout->addWidget(label);
    setLayout(vlayout);
}
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta