10

这个 Qt示例展示了如何调整对话框中包含的图像的大小,以便在调整对话框大小时,图像会相应地拉伸。

如何以相同的方式调整图像的大小,而不扭曲它/保持其比例相同?

当然,如果对话框的宽度/高度比与图像不同,我会得到一个“灰色”区域。
我找到了Qt::KeepAspectRatio枚举,但没有找到使用它的函数。

更新:这是我正在尝试的代码:

QImage image(path);
QImage image2 = image.scaled(200, 200, Qt::KeepAspectRatio);
QLabel *plotImg = new QLabel;
plotImg->setScaledContents(true);
plotImg->setPixmap(QPixmap::fromImage(image2));

调整标签大小时,图像不会保持恒定的纵横比。并且在重新缩放后会失去分辨率。

4

1 回答 1

22

使用该QImage::scaled功能。

QImage img("someimage.png");
QImage img2 = img.scaled(100, 100, Qt::KeepAspectRatio);

如果您需要它QPixmap存在同名的函数

于 2013-10-31T19:46:26.733 回答