[英]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_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));
问题是在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.