gpt4 book ai didi

c++ - Qt QLabel setPixmap 不需要的填充

转载 作者:行者123 更新时间:2023-11-28 07:56:31 28 4
gpt4 key购买 nike

我有一个 QLabel,其大小策略为 QSizePolicy::Expanding,我想在其中显示带有 QLabel::setPixmap 的图像。主窗口不应调整大小,这就是我在设置 QLabel 的大小之前缩放像素图的原因。

图像设置正确,但在顶部和底部有一个我不想要的填充,顶部 12px,底部 13px。 setPixmap 命令调整 QLabel 和主窗口的大小。我不知道为什么。 QLabel 的样式表是空的。我可以为 QLabel 背景着色,以查看额外的空间是 QLabel 的填充(或像素图的边距)。当我尝试调整主窗口的大小时,我无法将它变小以至于这个额外的边框消失,我可以将它放大并且填充在所有边上都增加(如预期的那样),但我无法将它变小以摆脱这个额外的 margin 。

有人知道是什么原因造成的吗?

编辑:

添加了一些代码。在这些行之前,ui->label_title 是空的,label_title 位于 label_main 之上的同一垂直布局中。我只是想,当某些文本设置为 label_title 时,布局尚未更新,所以下一行返回旧大小,然后图像太大,因为标题占用了一些空间,主窗口必须调整大小。是否有更新布局的命令,以便其中的所有小部件都获得新的大小? layout->update(); 没用。

ui->label_title->setText(imgNames.at(crntItemNr));
QSize size = ui->label_main->size();
ui->label_main->setPixmap(images.at(crntItemNr).scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation));

最佳答案

问题是 label_title 的 wordwrap,如 doc 中所述. label_main 的行为很奇怪,这使得很难在 label_title 中找到原因。

关于c++ - Qt QLabel setPixmap 不需要的填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12592205/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com