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 me sale esta advertencia:QWidget :: setLayout: Intentando establecer QLayout "" en Widget "", que ya tiene un diseño
QWidget::setLayout: Attempting to set QLayout "" on Widget "", which already has a layout
Y también el diseño está en mal estado (vea la etiqueta en la parte superior, en lugar de la parte inferior).
Este es un ejemplo de código que reproduce el problema:
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, todo este trabajo en sólo un simple error: QHBoxLayout * buttonLayout = new QHBoxLayout(); en lugar de: QHBoxLayout * buttonLayout = new QHBoxLayout (this); – user1369511
Lo mismo que el mío en PySide, cambiando hl = QtGui.QHBoxLayout (self) a hl = QtGui.QHBoxLayout() – gseattle