Qt:一行上有不同大小的QLabel

时间:2013-12-18 21:04:23

标签: c++ qt qwidget qtgui qlabel

我试图在我的小部件中显示不同的图像。我将图像放在QLabel中,然后调整这些标签的大小。

我希望将它们彼此相邻显示,因此我使用QHBoxLayout。但是,当它们显示时,图像的中心排成一行,我希望图像的底部对齐。

到目前为止,这是我的代码:

QWidget *widget = new QWidget(ui->tagcloud);
QHBoxLayout * l = new QHBoxLayout(widget);
ui->tagcloud->setWidget(widget);

l->addStretch();
for(int i=0;i<lijst.size();++i)
{

    QLabel *lab = new QLabel;

    QPixmap pic((lijst[i].imgPath).c_str());
    int sizeChange = 50 + (2*lijst[i].percent);

    lab->setFixedSize(QSize(sizeChange, sizeChange));
    lab->setPixmap(pic);
    lab->setScaledContents(true);

    l->addWidget(lab);
}

l->addStretch();
l->setSpacing(1);

1 个答案:

答案 0 :(得分:0)

您需要在QHBoxLayout和QLabel中设置对齐以根据需要定位项目。查看setAlignment函数和alignment属性。