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

Pro*_*Rev 5 c++ layout qt

我有一个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);
Run Code Online (Sandbox Code Playgroud)

这将创建一个QHBoxlayout,其中所有子项都在左侧浮动.我想leftLabel是在左边,centerLabel在该中心,并rightContent最右端.

我怎样才能做到这一点?

谢谢大家.

UPDATE

我想要,,右下方的东西:

在此输入图像描述

ata*_*xis 8

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

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

浏览此处获取更多信息


and*_*y.s 7

只需在"左","中"和"右"之间添加间隔:

QHBoxLayout *h = new QHBoxLayout(&parentWidget);
h.addWidget(leftLabel);
h.addStretch()
h.addWidget(centerLabel);
h.addStretch()
h.addLayout(rightLabel);
Run Code Online (Sandbox Code Playgroud)

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