首页 文章

Qt QLabel setPixmap不需要的填充

提问于
浏览
0

我有一个QLabel,在两个维度中都有 QSizePolicy::Expanding 的sizepolicy,我想用 QLabel::setPixmap 来显示图像 . 主窗口不应该调整大小,这就是我在设置QLabel大小之前缩放像素图的原因 .

图像设置正确,但在顶部和底部有一个我不想要的填充,顶部12px,底部13px . setPixmap 命令调整QLabel和主窗口的大小 . 我可以让它变得如此之小以至于这个额外的边框消失了,我可以放大它并且所有边上的填充增加(如预期的那样),但是我不能让它变小以消除这个额外的边距 .

有人知道是什么原因引起的吗?

编辑:

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

2 回答

相关问题