概述
如何在改变窗口组件的情况下改变窗口背景图片的大小,我们通常会使用Qt自带的scaled()函数;QImage、QPixmap等绘图设备类都提供scaled()函数。
scaled()是一个重载函数,按照指定的宽和高,根据纵横比模式和转换模式从原有图像返回一个经过比例转换的图像,如果宽高为0,返回一个空图像
所以,获取控件的改变后的宽高,就能设定图像转换的宽高转换比例,用scaled()的返回重新进行绘图即可自适应窗口,以下是个例子:
void Widget::paintEvent(QPaintEvent *)
{
QImage img((unsigned char*)im.data,im.cols,
im.rows,QImage::Format_RGB888);
QPainter painter(this);
if(0==flag)
painter.drawImage(0,0,nImg);
/*
一定要加标记位判断,控件在绘制之前的size为NULL,
所以scaled()返回值也为NULL,会提示nImg是空的
*/
else if(1==flag)
{
nImg=img.scaled(width(),height());
painter.drawImage(0,0,nImg);
}
}
最后
以上就是狂野帆布鞋为你收集整理的Qt 自适应图片之scaled()函数详解的全部内容,希望文章能够帮你解决Qt 自适应图片之scaled()函数详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复