0

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

图像设置正确,但在顶部和底部有一个我不想要的填充,顶部 12 像素,底部 13 像素。-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));
4

2 回答 2

1

问题是docwordwrap中解释的 label_title 。label_main 的行为很奇怪,很难在 label_title 中找到原因。

于 2012-09-26T11:25:07.993 回答
0

这可能是因为您对窗口大小使用了错误的测量值。您正在考虑盒子模型,并访问几何图形,它的测量方式不同:

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

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

如果没有代码示例,很难确切地看出哪里出了问题。

我希望这会有所帮助。

于 2012-09-25T23:07:25.903 回答