C++ Qt QLabel setPixmap不需要的填充

C++ Qt QLabel setPixmap不需要的填充,c++,qt,margin,padding,qpixmap,C++,Qt,Margin,Padding,Qpixmap,我有一个大小策略为QSizePolicy::expansing的QLabel,在这两个维度中,我想用QLabel::setPixmap显示一个图像。不应该调整主窗口的大小,这就是为什么我在设置为QLabel的大小之前缩放pixmap 图像设置正确,但在顶部和底部有一个我不想要的填充,在顶部12px,底部13px。setPixmap-命令调整QLabel和主窗口的大小。我不明白为什么。QLabel的样式表为空。我可以给QLabel背景上色,以查看额外的空间是QLabel的填充(或pixmap的边距

我有一个大小策略为
QSizePolicy::expansing
的QLabel,在这两个维度中,我想用
QLabel::setPixmap
显示一个图像。不应该调整主窗口的大小,这就是为什么我在设置为QLabel的大小之前缩放pixmap

图像设置正确,但在顶部和底部有一个我不想要的填充,在顶部12px,底部13px。
setPixmap
-命令调整QLabel和主窗口的大小。我不明白为什么。QLabel的样式表为空。我可以给QLabel背景上色,以查看额外的空间是QLabel的填充(或pixmap的边距)。当我尝试调整主窗口的大小时,我不能使它太小以至于这个额外的边框消失,我可以放大它,并且所有边的填充都会增加(就像预期的那样),但是我不能使它变小以去掉这个额外的边距

有人知道这是什么原因吗

编辑:

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

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_main的行为很奇怪,因此很难在label_title中找到原因