繁体   English   中英

Qt QLabel setPixmap不必要的填充

[英]Qt QLabel setPixmap unwanted padding

我有一个QLabel,其sizepolicy为QSizePolicy::Expanding ::: QSizePolicy::Expanding两个维度,我想在其中使用QLabel::setPixmap显示图像。 主窗口不应调整大小,这就是为什么我在设置为QLabel的大小之前先缩放像素图。

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

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

编辑:

添加了一些代码。 在这些行之前, ui->label_title为空,并且label_titlelabel_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));

问题是在doc上解释了label_title的自动wordwrap label_main的行为很奇怪,这使得很难在label_title中找到原因。

可能是因为您对窗口大小使用了错误的度量。 您正在考虑盒子模型,并访问几何,并且其测量方式有所不同:

http://qt-project.org/doc/qt-5.0/stylesheet-customizing.html

http://qt-project.org/doc/qt-4.8/application-windows.html#window-geometry

没有代码示例,很难确切地看出问题所在。

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM