效果图:
实现代码:
QImage ScaleImage2Label(QImage qImage, QLabel* qLabel)
{
QImage qScaledImage;
QSize qImageSize = qImage.size();
QSize qLabelSize = qLabel->size();
double dWidthRatio = 1.0*qImageSize.width() / qLabelSize.width();
double dHeightRatio = 1.0*qImageSize.height() / qLabelSize.height();
if (dWidthRatio>dHeightRatio)
{
qScaledImage = qImage.scaledToWidth(qLabelSize.width());
}
else
{
qScaledImage = qImage.scaledToHeight(qLabelSize.height());
}
return qScaledImage;
}
调用代码:
QImage *qImage = new QImage(qImagePath);
QImage qScaledImage = ScaleImage2Label(*qImage,ui.label);
ui.label->setPixmap(QPixmap::fromImage(qScaledImage));
ui.label->setAlignment(Qt::AlignCenter);
//ui.label->resize(ui.label->pixmap()->size());
ui.label->show();
参考: http://www.kuqin.com/qtdocument/qimage.html#ScaleMode-enum