我有一个 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 位于最右侧。
我怎样才能做到这一点?
提前谢谢大家。
更新
我想要下面的左,中心,右:
答案 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