要求
:用户拖拽边框,图片随边框大小改变而改变。
函数介绍
:
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);
}