此Qt example显示如何调整对话框中包含的图像的大小,以便在调整对话框大小时,图像会相应地伸展。
如何以相同的方式调整图像大小,而不会扭曲图像/保持其比例相同?
当然如果对话框的宽高比与图像的宽高比不同,我会得到一个“灰色”区域。
我找到了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));
调整标签大小时,图像不会保持恒定的宽高比。重新调整后它会失去解决方案。
答案 0 :(得分:16)
使用QImage::scaled
功能。
QImage img("someimage.png");
QImage img2 = img.scaled(100, 100, Qt::KeepAspectRatio);
如果您需要QPixmap
,a function with the same name exists。