c++ - Qt:一行中不同大小的QLabels

标签 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);

最佳答案

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

关于c++ - Qt:一行中不同大小的QLabels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668346/

相关文章:

c++ - 如何设置自定义小部件的背景颜色和边框宽度?

c++ - Qt——QWidget到底是什么

c++ - QWidget 外部 GUI 线程上的绘画问题

c++ - 返回析构函数有副作用的对象

c++ - 为什么系统在没有警告的情况下接受 long int 作为 int 参数传递?

c++ - 为什么::CreateProcess(path,cmd,...) 失败并出现错误 "File not found"?

c++ - Qt 5 dds 支持以节省内存并改善渲染

c++ - 未写入 vector 的值

qt - 如何在QLineEdit/QLabel等中从左到右显示阿拉伯符号?

c++ - 在函数调用期间暂时禁用窗口