是否可以在QVBoxLayout中添加空格行?我尝试使用QPushButton,然后隐藏,但这不起作用。
我希望布局包含5个按钮,并在按钮4和5之间留有一个间隔行。
答案 0 :(得分:1)
您不需要自己处理QSpacerItem
(documentation列出了创建QSpacerItem
时应使用的方法)。
如果要添加特定大小的空格,可以使用QVBoxLayout::addSpacing()
:
QWidget* w = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(w);
layout->addWidget(new QPushButton("first"));
layout->addWidget(new QPushButton("second"));
layout->addWidget(new QPushButton("third"));
layout->addWidget(new QPushButton("fourth"));
layout->addSpacing(50);
layout->addWidget(new QPushButton("fifth"));
w->show();
在第四和第五之间的最小间隔为50个像素:
如果要将按钮 fifth 放在底部,而将其他按钮放在顶部,请使用QVBoxLayout::addStretch()
:
QWidget* w = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(w);
layout->addWidget(new QPushButton("first"));
layout->addWidget(new QPushButton("second"));
layout->addWidget(new QPushButton("third"));
layout->addWidget(new QPushButton("fourth"));
layout->addStretch(1);
layout->addWidget(new QPushButton("fifth"));
w->show();
答案 1 :(得分:0)
尝试添加QSpacerItem
。
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(new QPushButton("first"));
layout->addWidget(new QPushButton("second"));
layout->addWidget(new QPushButton("third"));
layout->addWidget(new QPushButton("fourth"));
layout->addItem(new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding));
layout->addWidget(new QPushButton("fifth"));