图片大小自适应
要求:用户拖拽边框,图片随边框大小改变而改变。
函数介绍:QImage、QPixmap等绘图设备类都提供scaled()函数:
函数原型: QImage QImage::scaled ( int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio,Qt::TransformationMode transformMode = Qt::FastTransformation ) const
这是一个重载函数,按照指定的宽和高,根据纵横比模式和转换模式从原有图像返回一个经过比例转换的图像,如果宽高为0,返回一个空图像,
所以,获取控件的改变后的宽高,就能设定图像转换的宽高转换比例,用scaled()的返回重新进行绘图即可自适应窗口。
例子:void Movie::paintEvent(QPaintEvent *)
{
filename=list.at(imagecurrent);
QPixmap pic(filename);
QPixmap npic=pic.scaled(width(),height());
QPainter painter(this);
painter.drawPixmap(0,0,npic);
}