我有一个水平布局,我正在使用
添加小部件ui->horizontalLayout->addWidget(label);
但添加策略不是我想要的。例如,当我添加项目时,它首先放置开始,然后放在最后并继续放置。
但是,我想要的是,当我将小部件添加到布局时,它应该放在上一个小部件旁边。像那样 ,
可以这样做吗?
答案 0 :(得分:9)
添加完所有小部件后,为其添加一个担架。
ui->horizontalLayout->addStretch();
会做的。
答案 1 :(得分:7)
您可以在水平布局的外侧或水平布局内添加spacer item。如果在水平布局中添加spacer项,则必须确保在spacer项之前添加标签小部件。在这种情况下,使用insertWidget()功能添加标签。
或者,您可以在添加标签小部件后将spaceritem添加到水平布局的末尾。
以下是一个例子:
QHBoxLayout *hlayout = new QHBoxLayout;
ui->verticalLayout->addLayout(hlayout);
QSpacerItem *item = new QSpacerItem(1,1, QSizePolicy::Expanding, QSizePolicy::Fixed);
hlayout->addSpacerItem(item);
for(int i = 0; i < 10; i++)
{
QLabel *label = new QLabel("NOTE");
hlayout->insertWidget(i, label);
}
答案 2 :(得分:3)
setAlignment(Qt::AlignLeft);
应该做到这一点。您也可以使用它:
setSpacing(0);setContentsMargins(0, 0, 0, 0);
来删除小部件之间的额外空间。