QWidget :: setLayout: Es wird versucht, QLayout auf das Widget "" zu setzen, das bereits ein Layout hat

Ich versuche, das Layout eines Widgets manuell über Code festzulegen (nicht in Designer), aber ich mache etwas falsch, weil ich diese Warnung erhalte:

QWidget :: setLayout: Es wird versucht, QLayout "" für Widget "" festzulegen, das bereits ein Layout hat

Und auch das Layout ist durcheinander (das Etikett befindet sich oben statt unten).

Dies ist ein Beispielcode, der das Problem reproduziert:

<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>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage