小编use*_*511的帖子

QWidget :: setLayout:试图在Widget上设置QLayout"",它已经有了一个布局

我试图通过代码手动设置窗口小部件(不在Designer中),但是我做错了,因为我收到了这个警告:

QWidget :: setLayout:试图在Widget上设置QLayout"",它已经有了一个布局

而且布局也搞砸了(标签位于顶部,而不是底部).

这是一个重现问题的示例代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

c++ layout qt widget

14
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

layout ×1

qt ×1

widget ×1