如何在QHBoxLayout中对齐两个小部件,其中一个对齐到最左端,一个对齐到最右端?

时间:2020-07-26 15:17:07

标签: qt alignment qt5

我想要一个QHBoxLayout,其中一个QLabel在最左边,一个QLabel在最右边。

我的 Google-fu 使我失败。 :(我找不到解决方法。

这是QHBoxLayout的屏幕快照,其中有两个QLabel小部件:

enter image description here

无论如何,我都无法使第二个QLabel小部件在最右边对齐。

粗略地说,我尝试过这样的事情:

QHBoxLayout* const hboxLayout = new QHBoxLayout{};
hboxLayout->addWidget(m_leftLabel, 1);
hboxLayout->addStretch(1);
hboxLayout->addWidget(m_rightLabel, 0, Qt::AlignmentFlag::AlignRight);

在第一次addWidget()调用和addStretch()时,我尝试了各种较大的拉伸值。

我也尝试过:

m_rightLabel->setAlignment(Qt::AlignmentFlag::AlignRight)

这些解决方案均无效。我确信解决方案非常简单(!),但找不到它。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我的解决方案是在中间进行拉伸:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QHBoxLayout *lay = new QHBoxLayout(&w);
    lay->addWidget(new QLabel("Left"));
    lay->addStretch();
    lay->addWidget(new QLabel("Right"));
    w.show();
    return a.exec();
}

enter image description here