Próbuję ustawić układ widżetu ręcznie za pomocą kodu (nie w Projektancie), ale robię coś źle, bo mam to ostrzeżenie:QWidget :: setLayout: Próba ustawienia QLayout "" na Widget "", który ma już układ
QWidget::setLayout: Attempting to set QLayout "" on Widget "", which already has a layout
a także układ jest pomieszane (etykieta znajduje się na górze, zamiast na dole).
To jest przykładowy kod, który reprodukuje problem:
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);
}
WOW, wszystkie tego dzieła na prawie prostego błędu: QHBoxLayout * buttonLayout = new QHBoxLayout(); zamiast: QHBoxLayout * buttonLayout = new QHBoxLayout (this); – user1369511
To samo z kopalnią w PySide, zmieniając hl = QtGui.QHBoxLayout (self) na hl = QtGui.QHBoxLayout() – gseattle