因为需要,需要将QPixmap在控件上显示并进行缩放,将其缩放成与控件一般大; 但是发现并没有缩放成功(见图一);
看下代码:
QPixmap pixmap;if(pixmap.load(url)) {pixmap.scaled(width(), height());QPalette pal = ui->imageWidget->palette();pal.setBrush(QPalette::Background, QBrush(pixmap));ui->imageWidget->setPalette(pal);}
看起来好像没错,但是确实没有进行缩放,怎么回事???
图一:
解决方案:
查看手册,QPixmap QPixmap::scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const
哦,明白了,scaled()函数是返回一个新的QPixmap的,所以上述代码自然缩放失败了!!!
修改后的代码如下所示:
QPixmap pixmap;if(pixmap.load(url)) {QPalette pal = ui->imageWidget->palette();pal.setBrush(QPalette::Background, QBrush(pixmap.scaled(width(), height())));ui->imageWidget->setPalette(pal);}
此时就OK了!