如何在QHBoxLayout左,中,右对齐子项

时间:2017-02-07 21:32:43

标签: c++ qt layout

我有一个 QHBoxlayout ,其子项设置如下:

QHBoxlayout h = new QHBoxlayout();

QLLabel leftLabel = new QLLabel("Left");
QLLabel centerLabel = new QLLabel("Center");

QHBoxlayout rightContent = new QHBoxlayout();
QLLabel r1 = new QLLabel("2");
QLLabel r2 = new QLLabel("3");

rightContent.addWidget(r1);
rightContent.addWidget(r2);

h.addWidget(leftLabel);
h.addWidget(centerLabel);
h.addLayout(rightContent);

这将创建一个QHBoxlayout,其中所有子项都在左侧浮动。我希望 leftLabel 位于左侧, centerLabel 位于中间位置, rightContent 位于最右侧。

我怎样才能做到这一点?

提前谢谢大家。

更新

我想要下面的中心

enter image description here

2 个答案:

答案 0 :(得分:6)

只需在"左","中心"之间添加间隔物和"对":

QHBoxLayout *h = new QHBoxLayout(&parentWidget);
h.addWidget(leftLabel);
h.addStretch()
h.addWidget(centerLabel);
h.addStretch()
h.addLayout(rightLabel);

可能有助于在Qt Designer中练习。

答案 1 :(得分:1)

根据需要,还可以在添加小部件时定义对齐方式,如下所示:

auto h = new QHBoxLayout();
h->addWidget(leftLabel, 0, Qt::AlignLeft);
h->addWidget(centerLabel, 0, Qt::AlignCenter);
h->addLayout(rightLabel, 0, Qt::AlignRight);

有关更多信息,请参见here