QWidget :: setLayout: Попытка установить QLayout «» в виджете «», который уже имеет макет
Я пытаюсь установить компоновку виджета вручную с помощью кода (не в Designer), но я делаю что-то не так, потому что я получаю это предупреждение:
QWidget::setLayout: Attempting to set QLayout "" on Widget "", which already has a layout
А также макет испорчен (ярлык вверху, а не внизу).
Это пример кода, который воспроизводит проблему:
<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>